Java 如何使用Spring数据Jpa获取具有条件的父级及其所有子级?
我有一个Java 如何使用Spring数据Jpa获取具有条件的父级及其所有子级?,java,spring-data-jpa,Java,Spring Data Jpa,我有一个Parent和Child实体,如下所示- class Parent { Long id; List<Child> children; } class Child { Long id; String status; // ACTIVE or INACTIVE Parent parent; } 问题是- 仅获取活动子项的最简单方法是什么 是否可以在子实体的上设置活动查询条件 status属性默认情况下是否仅获取活动子实体 类似于上面的查询方法会起作用吗 见
Parent
和Child
实体,如下所示-
class Parent {
Long id;
List<Child> children;
}
class Child {
Long id;
String status; // ACTIVE or INACTIVE
Parent parent;
}
问题是-
活动
子项的最简单方法是什么子实体的上设置活动查询条件
status
属性默认情况下是否仅获取活动子实体
id
的父母,并且有一个状态为status
的孩子。生成的查询如下所示:
SELECT parent0_.id AS id1_1_
FROM parent parent0_
LEFT OUTER JOIN child children1_ ON parent0_.id=children1_.parent_id
WHERE parent0_.id=? AND children1_.status=?
@Entity
@Getter
@Setter
public class Parent {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@Where(clause = "status='ACTIVE'")
@OneToMany(mappedBy = "parent", cascade = CascadeType.ALL)
private List<Child> children;
}
public interface ParentRepository extends CrudRepository<Parent, Long> {
Parent findByIdAndChildrenStatus(Long id, String status);
}
SELECT parent0_.id AS id1_1_
FROM parent parent0_
LEFT OUTER JOIN child children1_ ON parent0_.id=children1_.parent_id
WHERE parent0_.id=? AND children1_.status=?