gpt4 book ai didi

java - Spring 启动: Set hibernate sequence globally

转载 作者:行者123 更新时间:2023-12-02 08:46:46 26 4
gpt4 key购买 nike

目前我按以下方式定义表格:

该示例是用 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)

有 Bean 还是其他东西?因为我喜欢对所有表使用相同序列的想法。

最佳答案

您可以拥有一个带有 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;
}

}

每个实体都会扩展它。

关于java - Spring 启动: Set hibernate sequence globally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61028673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com