JPA 验证唯一约束的最佳方法

Posted

技术标签:

【中文标题】JPA 验证唯一约束的最佳方法【英文标题】:JPA best way to validate unique constraint 【发布时间】:2014-10-20 16:04:06 【问题描述】:

您好,我是 JPA 的新手,我想验证一个唯一约束,在插入持久性上下文之前,先进行选择以查看数据是否已经存在,如果不存在,则返回一个布尔值以继续交易..这是一个不错的选择吗?非常感谢。

【问题讨论】:

为什么不检查它是否存在?例如:In JPA 2, using a CriteriaQuery, how to count results. 是的,我已经想到了,但这是最好和最简单的方法吗?这是一个好习惯吗? 【参考方案1】:

如果您认为需要先检查数据库,那么它会起作用。但是,通常情况下,您使用唯一约束的原因是您不希望有重复项,因此您不会浪费时间检查,只需确保您知道错误情况何时发生,这样您就可以找出问题所在.如果您实际上希望多次具有相同的值但希望在数据库中使用单例,那么您正在询问design question,也许应该尝试programmers.***.com。

【讨论】:

thanx Nicholas,重复数据不取决于我,但我认为用户可能输入了重复值,我会先检查该值是否存在于持久化上下文中,如果不存在,则将插入。谢谢推荐。

以上是关于JPA 验证唯一约束的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

@oneToMany 和 @JoinTable 在 jpa 中具有唯一约束?

是否应该在模型和数据库中都设置唯一约束?

将唯一违规异常传播到 UI 的最佳实践

对 BigQuery 表实施唯一约束

如何从表列中删除唯一约束?

验证在唯一约束中失败