【问题标题】:nonuniqueobjectexception on default ID generation in hibernates休眠中默认 ID 生成的非唯一对象异常
【发布时间】:2018-03-17 06:30:12
【问题描述】:

以下代码正在抛出:nonuniqueobjectexception

但是,当我使用: @GeneratedValue(strategy=GenerationType.IDENTITY) 一切正常。

@Entity
@Table(name="CART")
public class Cart {

    @Id
    @Column(name="cart_id")
    private long id;


@Entity
@Table(name="ITEMS")
public class Items {

    @Id
    @Column(name="id")
    private long id;

我想了解为什么使用休眠的默认 ID 生成策略会失败。

【问题讨论】:

    标签: java hibernate orm hibernate-mapping


    【解决方案1】:

    当操作破坏会话范围的身份时,会引发 nonuniqueobjectexception 异常。

    如果用户试图在单个 Session 范围内将同一 Java 类的两个不同实例与特定标识符相关联,则会发生这种情况。

    这也可能意味着 Hibernate 无法生成唯一 ID。

    话虽如此,始终建议使用提供的 GeneratedValue 类型。

    作为

    id = ggggg4g5h55hh6hhh7h7
    

    更复杂
    id = 2
    

    此链接将帮助您更好地理解它。

    https://www.thoughts-on-java.org/jpa-generate-primary-keys/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 2014-01-01
      • 2012-08-31
      • 2011-04-05
      • 2016-10-07
      • 2018-07-31
      相关资源
      最近更新 更多