当前位置: 首页 > 知识库问答 >
问题:

Hiber的@序列生成器返回不正确的值在MSSQL

颜骁
2023-03-14
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "generator")
@SequenceGenerator(name = "generator", schema = "MD", sequenceName = "sq_base_class")
public Long getId() {
    return id;
}

嗨!我有使用MS SQL序列生成ID的实体,但值不正确。

com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'PK_BCL'. Cannot insert duplicate key in object 'MD.BASE_CLASS'. The duplicate key value is (551009).

示例:序列发电机组 ID = 551009,但为返回551115选择下一个值md.sq_base_class。如何解决?Hibernate版本:5.3.10.最终版

共有1个答案

闻人飞白
2023-03-14

可能您在@SequenceGenerator中丢失了分配大小=1

 类似资料:
  • 问题内容: def size_of_dir(dirname): print(“Size of directory: “) print(os.path.getsize(dirname)) 是有问题的代码。dirname是一个目录,其中包含 130个 文件,每个文件约 1kb 。当我调用此函数时,它返回 4624 ,这 不是 目录的大小…为什么? 问题答案: 此值(4624B)代表的大小 文件 是 描

  • 生成器返回值 PHP7支持通过Generator::getReturn获取生成器方法return的返回值。 PHP5中我们约定使用Generator最后一次yield值作为返回值。 <?php final class AsyncTask { public function begin() { return $this->next(); } //

  • 你好,我正在复习Java练习。我有一个非常简单的程序:有两个int值,以及一个布尔变量。 i) 如果其中一个值为负值,另一个值为正值,则程序将返回true。 ii)但是,如果布尔变量为true,则程序只能在两个int值均为负值时返回true。 我已经用一堆int值对此进行了测试,但是一旦我给这个方法(1,-1)的值,以及布尔值设置为true,程序似乎就会崩溃。任何帮助或解释都将不胜感激。

  • 问题内容: 迁移到Hibernate 5.2.7之后,我似乎在id字段中得到了不正确的值。 我的代码: Hibernate触发以下查询: 得出5367。表中id字段的最后一个值为5358。 我明白了 我相信这个问题类似于这和这个,但我不得不问,因为给出的解决方案有没有为我工作: 我加了 到我的persistence.xml,但无济于事。任何帮助将不胜感激。 问题答案: 实际上,当您迁移到新的Hib

  • 问题内容: 我正在尝试为表中的每个用户获取一个SUM(),但是MySQL返回错误的值。 这就是它的外观(http://sqlfiddle.com/#!2/7b988/4/0) 但这就是它的外观(http://sqlfiddle.com/#!2/7b988/2/0) 这是我要运行的查询: 我究竟做错了什么? 问题答案: 试试这个查询: SQLFiddle-> http://sqlfiddle.com