代码之家  ›  专栏  ›  技术社区  ›  Marty Pitt

非一致性ObjectException迁移到hilo生成器策略

  •  0
  • Marty Pitt  · 技术社区  · 16 年前

    我有一个包含现有数据的数据库,在此之前我一直在使用数据库上的AUTO_INCREMENT来生成PK。

    为了提高性能和方便批量插入,我尝试引入一种不同的密钥生成策略:

    public class BaseEntity implements Serializable  {
    
    @Id
    @GeneratedValue(generator="generator")
    @GenericGenerator(
            name="generator", strategy="hilo")
    private Integer id;
    

    我找到了关于 @GenericGenerator 语法很难掌握,所以我不确定是否正确实现了它。据我所知,此生成器在执行插入之前为实体生成PK,因此不需要插入后查询来发现PK。

    然而,这导致了 org.hibernate.NonUniqueObjectException

    我在这里的理解正确吗?如果正确的话,我如何配置Hibernate以在启动时读取相应的表并选择PK下限?

    1 回复  |  直到 16 年前
        1
  •  0
  •   Adeel Ansari    16 年前

    看来你在用 tablehilo . 不管怎样,这个 Generator 代码对于解决问题非常重要。因此,请提供相关的代码片段。

    此外,我强烈建议你看看 this approach here ,如果您还没有。