Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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@ManyToMany关系如何工作?_Java_Hibernate_Jpa_Orm_Jpa 2.0 - Fatal编程技术网

Java Hibernate@ManyToMany关系如何工作?

Java Hibernate@ManyToMany关系如何工作?,java,hibernate,jpa,orm,jpa-2.0,Java,Hibernate,Jpa,Orm,Jpa 2.0,我有3个实体和一个用于链接这三个实体的实体: @Entity public class A { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToMany(cascade = CascadeType.ALL, mappedBy = "a", fetch = FetchType.LAZY) private List<

我有3个实体和一个用于链接这三个实体的实体:

@Entity
public class A {

          @Id
          @GeneratedValue(strategy = GenerationType.AUTO)
          private Long id;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "a", fetch = FetchType.LAZY)
    private List<ABCXref> abcXref = new ArrayList<ABCXref>();

          // getters/setters
}

@Entity
public class B {

          @Id
          @GeneratedValue(strategy = GenerationType.AUTO)
          private Long id;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "b", fetch = FetchType.LAZY)
    private List<ABCXref> abcXref = new ArrayList<ABCXref>();

          // getters/setters
}

@Entity
public class C {

          @Id
          @GeneratedValue(strategy = GenerationType.AUTO)
          private Long id;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "c", fetch = FetchType.LAZY)
    private List<ABCXref> abcXref = new ArrayList<ABCXref>();

          // getters/setters
}


@Entity
public class ABCXref {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @JoinColumn(name = "A_ID", nullable = true)
    @ManyToOne(optional = true, fetch = FetchType.LAZY)
    private A a;

    @JoinColumn(name = "B_ID")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)  
    private B b;  

    @JoinColumn(name = "C_ID")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private C c;
}
println(b.getAbcXref().size()); //0
c.getAbcXref().add(new ABCXref(a, b, c)); 
println(b.getAbcXref().size() == 1) //is `true` or `false`?