gpt4 book ai didi

java - 在 Hibernate 中的联接表上为 OneToMany 列表映射创建 OrderColumn

转载 作者:行者123 更新时间:2023-12-01 12:33:22 25 4
gpt4 key购买 nike

我有一个 productJob 表和一个 quadrat 表。每个样方都可以安装在许多 productJob 上,并且每个 productJob 可以有 1 到 4 个相同或不同类型的 quadrat!我有兴趣在产品作业中保留样方安装的顺序。例如第一名、第二名、第三名或第四名!但以下映射不会在 JoinTable telai_quadrati 上创建顺序列。我的映射有什么问题? orderColumn 无论如何都不会被创建!

@Entity
@Table(name = "telai")
public class ProductJob implements IProductJob, IProductJobProcessing{
@Embedded private QuadratGroup quadrateGroup = new QuadratGroup();
}

@Embeddable
public class QuadratGroup implements Serializable{
@OneToMany(targetEntity = Quadrat.class, cascade = CascadeType.ALL)
@JoinTable(
name = "telai_quadrati",
joinColumns = {@JoinColumn(name = "dbId", table = "telai")},
inverseJoinColumns = {@JoinColumn(name = "id", table = "quadrati")})
//@OrderColumn(name = "order")
@IndexColumn(name = "order")
public List<Quadrat> getQuadratList(){ //return an ordered list of the quadrats with at most 4 elements}

很明显,对于样方来说,不存在顺序,所以我使用 set!

@Entity
@Table(name = "quadrati")
public class Quadrat implements IQuadrat, Cloneable, Serializable{
@ManyToMany
@JoinTable(
name = "telai_quadrati",
joinColumns = @JoinColumn(name = "id", table = "quadrati"),
inverseJoinColumns = @JoinColumn(name = "dbId", table = "telai"))
private Set<ProductJob> productJobs;

最佳答案

如果我使用属性访问而不考虑方法访问,它就会起作用!像这样:

@OneToMany(targetEntity = Quadrat.class, cascade = CascadeType.ALL)
//@MapKeyJoinColumn(name="indice" , table = "telai_quadrati")
@JoinTable(
name = "telai_quadrati",
joinColumns = {@JoinColumn(name = "telaio_id", table = "telai")},
inverseJoinColumns = {@JoinColumn(name = "quadrato_id", table = "quadrati")})
@OrderColumn(name = "indice")
private List<Quadrat> quadratList;

但我想知道为什么它不适用于方法访问,这迫使我在我的项目中进行大量重构! :(

关于java - 在 Hibernate 中的联接表上为 OneToMany 列表映射创建 OrderColumn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25768530/

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