Hibernate - 从 ManyToMany 关系访问字段

Hibernate - Accessing fields from a ManyToMany relation

我有一个 ManyToMany table,我想进行这样的查询:

"select e.manytomany.fieldName from Entity e"

我不能 select ManyToMany table 的字段,唯一的可能性是 select table(如 "select e.manytomany from Entity e")给我一个 Set<>.

有什么方法可以让我进行这样的查询吗?

据我所知,您想完成一个连接条件。

类甲乙:

public class A {

    @Id
    private String id;

    @ManyToMany
    @JoinTable(name="a_b", joinColumns={@JoinColumn(name="a_id")}, inverseJoinColumns={@JoinColumn(name="b_id")})
    private Set<B> b;

    private String field;
}

public class B {

    @Id
    private String id;

    @ManyToMany(mappedBy = "b")
    private Set<A> a;
}

查询:

TypedQuery<String> query = em.createQuery("SELECT a.field FROM A a JOIN B b ON a MEMBER OF b.a AND b = :b", String.class);
query.setParameter("b", someBInstance);

这导致 List<String>"someBInstance.a.field"