3 回答

TA贡献2051条经验 获得超10个赞
当您使用@GeneratedValue(strategy=GenerationType.AUTO)底层 ORM 框架时,将使用标识列、序列或表,具体取决于底层数据库。在您的情况下,我猜它正在使用一个序列(用于为所有表生成 ID 的单个序列)。如果是这种情况,为了实现每个表 ID 独立于其他表,您必须为每个实体提供不同的序列名称。
如果您使用的是 Hibernate,请考虑使用@GenericGenerator. 来自其他SO 答案的示例:
@GenericGenerator(
name = "wikiSequenceGenerator",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "WIKI_SEQUENCE"),
@Parameter(name = "initial_value", value = "1000"),
@Parameter(name = "increment_size", value = "1")
}
)
@Id
@GeneratedValue(generator = "wikiSequenceGenerator")
添加回答
举报