我们正在使用@sequencegenerator注解在mssql数据库中生成序列,但当我们执行序列时,序列生成为表而不是序列,我们使用了2012 Dialect,但我们仍然面临相同的问题,应用程序抛出异常无效的对象名称-序列名称-。请帮助解决方案
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;
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的列。
2条答案
按热度按时间s6fujrry1#
是否使用GeneratedValue注解指定ID生成值将来自数据库序列?
示例:
fzsnzjdm2#
Hibernate(v 5.6.3)似乎使用自己的表来管理sql server中的序列,您必须创建一个与序列同名的表,其中包含一个名为next_瓦尔的列,然后插入一行init值。
然后递增next_瓦尔:
另外,不要定义将生成值用作IDENTITY的列。