1

今天我负责数据库的老板告诉我,我在 JPA/Hibernate 中使用了错误的序列,但我没有,所以我检查了为什么我生成的表条目的 ID 比正常(触发器)生成的条目更高。
在 SO 上发现了这对我来说太可怕了,因为我在数据库触发器中使用这个数据库序列来生成条目。这意味着,据我所知。在 50 倍的时间内,我的数据库将开始访问我的 Java 应用程序生成的序列号。

为了避免这种情况,我需要使用特定的序列,而不是序列*50。但是还没有找到如何做到这一点,任何人都可以帮助我吗?

提前致谢

目前它是这样定义的:

@Id
@Column(name = "PVP_COST_ELEMENTS_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "wtStatSEQ")
@SequenceGenerator(name = "wtStatSEQ", sequenceName = "warehouse.wt_stat_SEQ")
4

1 回答 1

1

在hibernate中,您可以使用注释显式指定使用的seq

@Id
@Column(name = "COLUMN_NAME", nullable = false)
@GeneratedValue(strategy = AUTO, generator = "yourEntitySeqGen")
@SequenceGenerator(name = "yourEntitySeqGen", sequenceName = "SEQUENCE_NAME_IN_YOUR_DATABASE")

干杯

于 2013-04-25T12:38:23.777 回答