【发布时间】:2019-06-03 15:29:55
【问题描述】:
我正在编写一个 JPA 实体,并希望它的 id 由 Hibernate 自动生成。我正在使用带有一些参数管理策略和增量的@GenericGenerator 注释。我希望因此生成 id (1, 2, 3, 4, ...),但不知何故,Hibernate 决定必须通过将先前的 id 增加 100 (1, 101, 201, ...) 来生成它。
顺便说一句,我正在使用 Derby Embedded。
我发现 strategy = "increment" 符合我的目标,但据我了解,它的类型不是线程安全的。
@Table(name = "ACCOUNTS")
data class Account(
@Id
@GenericGenerator(name = "ACCOUNT_SEQ",
strategy = "enhanced-sequence",
parameters = [
Parameter(name = "initial_value", value = "1"),
Parameter(name = "increment_size", value = "1")]
)
@GeneratedValue(generator = "ACCOUNT_SEQ")
@Column(name = "ID")
val id: Long
)
那么,如何使用 strategy = "enhanced-sequence" 并将 id 加 1?有可能吗?
【问题讨论】:
-
有关控制 Derby 的序列号预分配行为的建议,请参阅:stackoverflow.com/a/31804619/193453
标签: hibernate jpa kotlin derby