Spring Boot MS SQL Server中的Hibernate序列生成

3pvhb19x  于 2023-02-19  发布在  Spring
关注(0)|答案(2)|浏览(155)

我们正在使用@sequencegenerator注解在mssql数据库中生成序列,但当我们执行序列时,序列生成为表而不是序列,我们使用了2012 Dialect,但我们仍然面临相同的问题,应用程序抛出异常无效的对象名称-序列名称-。请帮助解决方案

s6fujrry

s6fujrry1#

是否使用GeneratedValue注解指定ID生成值将来自数据库序列?
示例:

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_name")
@SequenceGenerator(name = "seq_name", sequenceName = "seq_name_in_database", allocationSize = 1)
@Column(name = "id")
private Long id;
fzsnzjdm

fzsnzjdm2#

Hibernate(v 5.6.3)似乎使用自己的表来管理sql server中的序列,您必须创建一个与序列同名的表,其中包含一个名为next_瓦尔的列,然后插入一行init值。

select next_val as id_val from sequence_name with (updlock,rowlock)

然后递增next_瓦尔:

update sequence_utilisateur set next_val= ? where next_val=?

另外,不要定义将生成值用作IDENTITY的列。

相关问题