Java 在Hibernate中为联接表上的OneToMany列表映射创建OrderColumn
我有一个Java 在Hibernate中为联接表上的OneToMany列表映射创建OrderColumn,java,hibernate,list,jpa,many-to-one,Java,Hibernate,List,Jpa,Many To One,我有一个productJob表和一个quadrat表。每个样方可以安装在许多productJob上,每个productJob可以有1到4个相同或不同类型的样方!我有兴趣在产品作业中保持样方安装的顺序。例如第一、第二、第三或第四名!但是下面的映射不会在连接表telai_quadrati上创建order列。我的映射有什么问题?无论如何都不会在中创建orderColumn @Entity @Table(name = "telai") public class ProductJob implements
productJob
表和一个quadrat
表。每个样方可以安装在许多productJob
上,每个productJob
可以有1到4个相同或不同类型的样方!我有兴趣在产品作业中保持样方安装的顺序。例如第一、第二、第三或第四名!但是下面的映射不会在连接表telai_quadrati
上创建order列。我的映射有什么问题?无论如何都不会在中创建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}
@实体
@表(name=“telai”)
公共类ProductJob实现IPProductJob、IPProductJobProcessing{
@嵌入式专用quadragroup quadragegroup=新quadragroup();
}
@可嵌入
公共类组实现可序列化{
@OneToMany(targetEntity=quadra.class,cascade=CascadeType.ALL)
@可接合(
name=“telai_quadrati”,
joinColumns={@JoinColumn(name=“dbId”,table=“telai”)},
inverseJoinColumns={@JoinColumn(name=“id”,table=“quadrati”)})
//@OrderColumn(name=“order”)
@索引列(name=“order”)
public List getquadralist(){//返回最多包含4个元素的有序样方列表}
很明显,对于样方,不存在顺序,所以我使用集合
@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;
@实体
@表(name=“quadrati”)
公共类样方实现IQuadrat、可克隆、可序列化{
@许多
@可接合(
name=“telai_quadrati”,
joinColumns=@JoinColumn(name=“id”,table=“quadrati”),
inverseJoinColumns=@JoinColumn(name=“dbId”,table=“telai”))
私人职业;
如果我在方法访问的同时使用属性访问,它会起作用!如下所示:
@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;
@OneToMany(targetEntity=quadra.class,cascade=CascadeType.ALL)
//@MapKeyJoinColumn(name=“indice”,table=“telai_quadrai”)
@可接合(
name=“telai_quadrati”,
joinColumns={@JoinColumn(name=“telaio_id”,table=“telai”)},
inverseJoinColumns={@JoinColumn(name=“quadrato\u id”,table=“quadrati”)}
@OrderColumn(name=“indice”)
私人名单;
但我想知道为什么它不能与方法访问一起工作,而方法访问会迫使我在项目中进行大量重构!:(