wen*_*wen 11 java jpa try-catch unique-constraint eclipselink
考虑以下实体类,例如,与EclipseLink 2.0.2一起使用 - 其中link属性不是主键,但仍然是唯一的.
@Entity
public class Profile {
@Id
private Long id;
@Column(unique = true)
private String link;
// Some more attributes and getter and setter methods
}
Run Code Online (Sandbox Code Playgroud)
当我插入具有该link属性的重复值的记录时,EclipseLink不会抛出a EntityExistsException,而是抛出a DatabaseException,并显示消息,说明违反了唯一约束.
这似乎不是很有用,因为没有一种简单的,独立于数据库的方法来捕获此异常.处理这个问题的建议方法是什么?
我考虑过的一些事情是:
DatabaseException- 我担心这个错误代码是数据库的本机错误代码;Profile具有特定值的a的存在link- 这显然会导致大量多余的查询.当我为link属性插入具有重复值的记录时,EclipseLink不会抛出EntityExistsException
是的,并且JPA提供程序不应该EntityExistException在这种情况下抛出,EntityExistException除了主键之外你不会得到别的东西.
(...)但抛出DatabaseException,并显示消息,说明违反了唯一约束.
EclipseLink 非常错误,JPA提供者应抛出一个PersistenceException或一个子类,但肯定不是特定的异常o.e.p.e.DatabaseException.这是一个错误,应该像我在之前的回答中提到的那样报告.
这似乎不是很有用,因为没有一种简单的,独立于数据库的方法来捕获此异常.处理这个问题的建议方法是什么?
与上述答案相同,请参阅我之前的答案.
| 归档时间: |
|
| 查看次数: |
14174 次 |
| 最近记录: |