java - 具有 @ManyToMany 关系且无导航的 JPA 查询

标签 java hibernate jpa criteria jpql

类似于this post ,我有这些(几乎相同的)类(class):

public class Project {
    @ManyToMany 
    private Set<Person> resources;
    // get and set of resources
}
public class Person {
}

不同之处在于我的属性是私有(private)的(使用bean作为实体)。

问题是:我如何创建一个查询来返回指定人员的所有项目(使用 JPQL 和/或使用 CriteriaQuery)?

我发现了所有其他类似的问题,但没有一个对我有帮助,因为它们都依赖于从 ProjectPerson 的导航(不存在从):

我不想在“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/

相关文章:

java - 如何在 Hibernate 中限制集合的内容

java - 给定一个整数 n,按字典顺序返回 1 - n

java - JPanel中按钮的居中对齐

java - 无法在我的另一台电脑上运行相同的 servlet/hibernate 项目

java - 从迭代列表中保存对象

jpa - EclipseLink 审计/历史/跟踪变更

jpa - java.lang.IllegalStateException : No explicit selection and an implicit one could not be determined

java - 有没有办法在java中序列化和反序列化单例类,保持其单例性质?

java - 将项目添加到队列末尾

java - 如何注册 SQL 函数,以便您可以使用 JPA 和 Hibernate 在 JPQL 或 HQL 查询中调用它们