NonUniqueObjectException迁移到hilo生成器策略

时间:2010-02-24 03:10:46

标签: java hibernate

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

为了提高性能并促进批量插入,我正在尝试引入不同的密钥生成策略:

public class BaseEntity implements Serializable  {

@Id
@GeneratedValue(generator="generator")
@GenericGenerator(
        name="generator", strategy="hilo")
private Integer id;

我发现很难找到@GenericGenerator语法的文档,所以我不确定我是否正确实现了它。据我了解,这个生成器为执行INSERT的实体生成PK,因此无需插入后查询来发现pk。

然而,当尝试执行INSERT时,它会导致org.hibernate.NonUniqueObjectException异常 - 可能是因为hibernate试图用于PK的值已被采用。

我的理解是否正确,如果是 - 如何配置Hibernate在启动时读取相应的表并选择较低的PK边界?

1 个答案:

答案 0 :(得分:0)

您似乎正在使用tablehilo。无论如何,Generator代码对于解决问题非常重要。因此,请提供相关的代码段。

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