我遇到了JHipster生成的实体ID生成问题:
INSERT INTO station (name) VALUES ('Adygeya')
为什么?
我的研究表明,只有postgres和oracle在初始方案中jhipster创造了一个新的sequince" hibernate_sequence"用于创建新实体。
所以我通过为我的实体ID生成规则添加特定的序列名来解决这个错误的行为
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "station_gen")
@SequenceGenerator(name = "station_gen", sequenceName = "station_id_seq")
private Long id;
现在我只有3个问题:
答案 0 :(得分:1)
将在@GaëlMarziou和@Julien Dubois的帮助下发布我的回答。
这是因为Hibernate hilo算法的历史和默认行为与GenerationType.AUTO。 MySQL不支持顺序,所以JHipster需要使用这个愚蠢的算法
JHipster团队找到了解决问题的正确解决方案。解决方案是对所有数据库使用GenerationType.SEQUENCE,但对MySql使用GenerationType.IDENTITY。此提交中的所有详细信息https://github.com/jhipster/generator-jhipster/commit/4516b4ff4d49a96a75fd963b0c7667f198bd9b79
这样我现在也会配置我的实体。