Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Hibernate中为联接表上的OneToMany列表映射创建OrderColumn_Java_Hibernate_List_Jpa_Many To One - Fatal编程技术网

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”)
私人名单;
但我想知道为什么它不能与方法访问一起工作,而方法访问会迫使我在项目中进行大量重构!:(