考虑以下实体类,例如与 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
}
当我为属性插入具有重复值的记录时link
,EclipseLink 不会抛出 a EntityExistsException
,而是抛出 a DatabaseException
,并显示消息说明违反了唯一约束。
这似乎不是很有用,因为没有一种简单的、独立于数据库的方法来捕获这个异常。处理此问题的建议方法是什么?
我考虑过的几件事是:
- 检查错误代码
DatabaseException
- 我担心这个错误代码是数据库的本机错误代码; Profile
预先检查具有特定值的 a 的存在link
- 这显然会导致大量多余的查询。