Hibernate 使用DetachedCriteria查询多对多关系

Hibernate 使用DetachedCriteria查询多对多关系,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,现在数据库中有3个表: Table A: id: ... Table B: id: ... Table C: A_id: B_id: ... 映射对象如下所示: @Entity @Table(name="A") Class A{ Long id; @ManyToMany @Fetch(FetchMode.SELECT) @JoinTable(name="C",joinColumns={@JoinColumn(name="A_id")},inverseJo

现在数据库中有3个表:

Table A:
id:
...

Table B:
id:
...

Table C:
A_id:
B_id:
... 
映射对象如下所示:

@Entity
@Table(name="A")
Class A{
    Long id;

    @ManyToMany
    @Fetch(FetchMode.SELECT)
    @JoinTable(name="C",joinColumns={@JoinColumn(name="A_id")},inverseJoinColumns={@JoinColumn(name="B_id")})
    List<B> Bs;
}

@Entity
@Table(name="B")
Class B{
    Long id;
}

非常感谢!任何帮助都将不胜感激。

在HQL中,只需

select a from A a inner join a.bs b where b.id = :id
它直接转化为标准:

Criteria c = session.createCriteria(A.class, "a");
c.createAlias("a.bs", "b");
c.add(Restrictions.eq("b.id", bId);
一如既往,链接到

Criteria c = session.createCriteria(A.class, "a");
c.createAlias("a.bs", "b");
c.add(Restrictions.eq("b.id", bId);