gpt4 book ai didi

java - MSSQL 和 Hibernate 的 ID 跳转问题

转载 作者:行者123 更新时间:2023-12-02 04:09:44 27 4
gpt4 key购买 nike

我在使用 MSSQL ID 跳转功能时遇到问题。

我的要求是,我需要生成一个序列号,从 1000 开始并逐一递增,我的应用程序托管在多个服务器中并指向同一个数据库。多个主机通过 Nginx 进行平衡。

为此,使用 SequenceGenerator 编写了一个实体类

@Entity
@SequenceGenerator(name = "IdSequence",
sequenceName = " ID_GEN",
allocationSize = 1)
public class Example implements Serializable {

/**
*
*/
private static final long serialVersionUID = 1L;


@Id
@GeneratedValue(generator = " IdSequence ")
private long id ;

}

而且效果很好。当我重新启动数据库时,下一个ID跳转到current+1000为了解决这个问题,我添加了一个 hibernate 属性,它可以很好地防止 ID 跳转。

<property name="hibernate.id.new_generator_mappings" value="true"/>

现在真正的问题是具有自动生成策略的现有实体已经出现异常,例如

Cannot insert explicit value for identity column in table ‘USER' when IDENTITY_INSERT is set to OFF.

  • 有没有办法解决JPA/Hibernate中的ID跳转问题
  • 如果我要使用,如何避免IDENTITY_INSERT设置为OFF同样的修复。

Could you please suggest a better option to generate sequence number that should be unique.

提前致谢

最佳答案

听起来您遇到的是 this ,而不是与 Hibernate 相关的任何内容。

在 SQL Server 配置管理器中,右键单击右侧 Pane 中的实例名称,然后单击“属性”,然后单击“启动参数”在“指定启动参数”中输入 -T272 以设置 272 跟踪标志。

我理解您的困惑和沮丧,但最终,您实际上不需要担心您的下一个 identity 值是什么。

还有一个已关闭的Microsoft Connect帖子表明这就是其他一些可能的解决方法的方式。

关于java - MSSQL 和 Hibernate 的 ID 跳转问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33908561/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com