![](/img/trans.png)
[英]Enable hibernate filter globally with spring-boot & spring-data
[英]Spring Boot: Set hibernate sequence globally
目前我通過以下方式定義表格:
示例在 Kotlin 中,但如果需要,您可以在 Java 中回答。
@Entity
data class Task(@Id @GeneratedValue(strategy = GenerationType.SEQUENCE)
var id: Int = 0,
@ManyToOne(optional = false) @OnDelete(action = OnDeleteAction.CASCADE)
var exercise: Exercise = Exercise(),
@Column(nullable = false)
var name: String = "")
@Entity
data class Exercise(@Id @GeneratedValue(strategy = GenerationType.SEQUENCE)
var id: Int = 0,
@Column(nullable = false)
var count: Int = 0)
使用此示例,所有表都使用相同的序列: hibernate_sequence
。
如果我想配置它,例如設置自定義allocationSize
,那么我必須在每個表中定義它,對嗎?
@SequenceGenerator(name = "task_seq", sequenceName = "task_seq", allocationSize = 100)
有豆子還是別的什么? 因為我喜歡對所有表使用相同序列的想法。
您可以擁有一個抽象基 class ,其 ID 如下:
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
@MappedSuperclass
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
每個實體都會擴展它。
這可行,但在使用 hibernate Envers 的情況下,它將創建兩個序列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.