![]() |
1
9
这取决于拥有一个副本是一个例外的场景,还是一个业务逻辑案例。
如果需要指示哪个字段在唯一约束下失败,那么最好事先检查它,而不是捕获异常。捕获异常并不能提供重要的细节——哪个字段失败了。 有一些方法可以根据异常获取此信息,但它非常繁琐且特定于数据库(在数据库中查找约束名(特定于数据库),获取应用它的字段,将字段与Entity属性匹配) |
![]() |
2
4
最好检查数据库中是否存在数据。检查数据库中是否已经存在数据的一个简单方法是让类实现休眠。 LifeCyle 应用程序编程接口。Hibernate允许您在保存之前验证行为,但是在将标识与bean关联之后。如果违反或失败了某些逻辑,则可以否决保存操作。
|
![]() |
3
1
我绝对同意博佐的回答。我认为这正是关键所在。
在我们的情况下,这些PK冲突是非常罕见的,因此我们认为这种情况是例外。我们还使用Spring和Hibernate,为了分离这些问题,由于Spring事务定义的原因,我们使用AOP捕获特定的数据完整性异常,并根据需要重新运行事务进行完整性检查。
|
![]() |
AntonBoarf · 休眠/春天:悲观主义者vs乐观主义者锁定? 7 年前 |
![]() |
Sinan Samet · Hibernate给出无法确定类型错误 7 年前 |
|
Carlos Chávez · Tomcat/Hibernate配置 7 年前 |
![]() |
Seric · 更改Naturald参数名称后出错 7 年前 |
![]() |
OOvic · 使用JoinTable实现多个关系中的JPQL查询 7 年前 |
![]() |
Jovan0042 · 在H2中持久化多个实体引发异常 7 年前 |