我想通过 JPA 查询/criteriaQuery 选择元素,但不太清楚该怎么做。
我使用 H2 作为数据库。我在 H2 控制台中测试的查询是:
SELECT element.*
FROM element LEFT JOIN group_element ON element.id = group_element.elements_id
WHERE group_id IS NULL
换句话说,我想选择无组元素。
类(class)有:
@Entity
class Element{
@Id
@GeneratedValue
private Integer id;
}
@Entity
class Group{
@Id
@GeneratedValue
private Integer id;
@ManyToMany
private List<Element> elements;
}
在“元素”由 Element 中的字段映射的类似情况下,我执行此操作没有问题,但在这种特定情况下,我无法添加该字段。我不太清楚在这种情况下如何加入实体。
最佳答案
JQL 连接是从所有者到被拥有的。要获得无组元素,您可以这样做
SELECT e FROM Element e WHERE e NOT IN (SELECT e2 FROM Group g INNER JOIN g.elements e2)
关于java - 如何从子元素 JPA 加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32695138/