A表映射到ClassA,B表映射到ClassB然后设置many-to-many 属性,采用中间表C

解决方案 »

  1.   

    many-to-many 
    然后把cascade设置成All这样就A和B联级增删改查
      

  2.   

    @Entity
    @Table(name = "table_A")
    public class A {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;//自动生成
    private int name; @JoinTable(name = "table_C", joinColumns = {@JoinColumn(name = "A_id", referencedColumnName = "id")}, inverseJoinColumns = {@JoinColumn(name = "B_id", referencedColumnName = "id")})
        @ManyToMany(cascade = CascadeType.ALL)
        private Collection<B> bCollection;
    get/set...
    }@Entity
    @Table(name="table_B")
    public class B {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;
    private String score;
    @ManyToMany(mappedBy = "bCollection")
        private Collection<A> aCollection; get/set...
    }
    测试大概这么写,你看一下过程就行了A a = new A();
    B b1 = new B();
    B b2 = new B();
    b1.setscore(50);
    b2.setscore(60);
    Collection<B> bs = new ArrayList<B>();
    bs.add(b1);
    bs.add(b2);
    a.setBCollection(bs);
    session.saveOrUpdate(a)