【问题标题】:How to prevent Hibernate from throwing ConstraintViolationException when using session.saveOrUpdate(Object)?使用 session.saveOrUpdate(Object) 时如何防止 Hibernate 抛出 ConstraintViolationException?
【发布时间】:2020-01-24 17:33:19
【问题描述】:

当我使用 session.saveOrUpdate(Object) 时,休眠引发了 ConstraintViolationException。 “更新”部分不应该阻止这个异常被抛出吗?

我也尝试过使用 session.delete(Object) 然后 session.save(Object) 但抛出了相同的异常。 我该如何解决这个问题?

【问题讨论】:

  • 它应该始终从读取异常堆栈跟踪开始,以了解它被抛出的原因。
  • @JBNizet 我明白了,为什么会被抛出。这是因为我插入了一个重复的值(因为我需要更新数据)。我认为 update 方法可以防止抛出这个异常(因为它更新了值而不是插入它)。不是吗?否则我将如何更新数据库中的值?

标签: java hibernate exception constraintviolationexception


【解决方案1】:

将此注释添加到实体解决了问题:

@SQLInsert(sql="REPLACE INTO table_name (column_1,column_2) VALUES (?,?)")

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2020-04-12
    • 1970-01-01
    • 2017-03-20
    相关资源
    最近更新 更多