Java HIbernate 5:生成器类=";顺序;不起作用
我有以下映射:Java HIbernate 5:生成器类=";顺序;不起作用,java,hibernate,hibernate-5.x,Java,Hibernate,Hibernate 5.x,我有以下映射: <id name="id" type="java.lang.Long" column="id"> <generator class="sequence"> <param name="sequence">tracksdata_seq</param> </generator> </id> 如何解决这个问题 p.S.Hibernate 5.0
<id name="id" type="java.lang.Long" column="id">
<generator class="sequence">
<param name="sequence">tracksdata_seq</param>
</generator>
</id>
如何解决这个问题
p.S.Hibernate 5.0.2.最终版。从Hibernate 4.3.10迁移到Hibernate 5.0.4时,我也遇到了这个问题。与maksim2020一样,我将
的实例替换为
。然而,为了保留受影响表的id序列,我还必须编写一个sql迁移脚本,将列的默认值设置为现有序列的下一个值。在PostgreSQL中,此操作如下所示:
ALTER TABLE ONLY affected_table ALTER COLUMN affected_id SET DEFAULT nextval('original_sequence'::regclass);
您有两个选择:
hibernate.id.new_generator_mappings
configuration属性设置为false,并切换回旧的标识符生成器
MY_序列
致:
没有一个
1.
MY_序列
中使用“序列\名称”
而不是中的“序列”
这对我很有用。它正在寻找序列hibernate\u序列,您在上面的映射中提到过吗?您有tracksdata_seq,不确定这是否指的是hyberante_sequence这不应该指的是hibernate_sequence-它必须使用tracksdata_seq,就像在hibernate 4.2中一样。@maksim2020我在从4.3.8迁移到5.0.6 final时遇到了同样的问题。只有在使用XML映射时才会发生这种情况。我切换到JPA注释,效果很好。请注意,参数名称不再是“sequence”,而在版本5中是“sequence_name”。请参阅Spring引导格式:Spring.jpa.properties.hibernate.id.new_生成器_映射。但是我还需要spring.jpa.properties.hibernate.default\u架构来使用正确的架构名称。class=“sequence”生成器已被弃用,因此可能值得按照其他答案中的说明对其进行更改,但同时此更改更容易,谢谢!
ALTER TABLE ONLY affected_table ALTER COLUMN affected_id SET DEFAULT nextval('original_sequence'::regclass);