我正在挣扎于一个MySQL数据库查询,希望你能帮助我。该示例是抽象的,因为问题是查询:
POJO:
class Parent
{
List<Child> children;
}
class Child
{
Integer id;
}现在我想找到所有没有孩子的父母。
像这样:
List<Parent> findByChildrenNotIn(List<Child> childs);或
@Query("SELECT p FROM Parent p "
+ "LEFT OUTER JOIN p.children c "
+ "WHERE c.id != ?1 "
+ "GROUP BY p.id "
)
List<Parent> findByNotChildren(List<Integer> childIds); 好的,至少可以通过“儿童”这样的方式过滤:
List<Parent> findByChildrenNot(Child child);或者类似的东西。
这似乎很容易,但我找不到解决办法。希望你能帮我。
提前感谢!
亲切的问候
格雷果
发布于 2018-05-08 18:50:32
当一个孩子已经足够时,可以这样使用MEMBER OF:
@Query("select p from Parent p where :child NOT MEMBER OF p.childs")
List<Parent> findParents(@Param("child")Child child); 如果您有一个双向关系,您可以这样查询:
@Query("SELECT DISTINCT c.parent FROM Child c WHERE c NOT IN (:childs)")
List<Parent> findParents(@Param("childs")List<Child> childs); https://stackoverflow.com/questions/50237706
复制相似问题