类似于this post ,我有这些(几乎相同的)类(class):
public class Project {
@ManyToMany
private Set<Person> resources;
// get and set of resources
}
public class Person {
}
不同之处在于我的属性是私有(private)的(使用bean作为实体)。
问题是:我如何创建一个查询来返回指定人员的所有项目(使用 JPQL 和/或使用 CriteriaQuery)?
我发现了所有其他类似的问题,但没有一个对我有帮助,因为它们都依赖于从 Project
到 Person
的导航(不存在从人
):
- JPQL ManyToMany select
- @ManyToMany JPA 2 complex query
- JPA 2.0 CriteriaQuery on tables in @ManyToMany relationship
我不想在“Person”中插入属性只是为了能够进行查询,因为它在我的模型中没有意义。
谢谢!!
最佳答案
select project from Project project
join project.resources person
where person.id = :personId
如果您确实想要的话,我会让您将其转换为条件,但我不认为使用 Criteria 进行这样的基本静态查询有任何优势。
关于java - 具有 @ManyToMany 关系且无导航的 JPA 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22052537/