Jpa 按字段 child 获取 parent
Jpa get parent by field child
如何通过child的字段获取parent实体?我使用规格
我有存储库
ParentRepository extends JpaRepository<Parent, Long>, JpaSpecificationExecutor<Parent>{
}
还有两个班级:
class Parent{
@Id
long id;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = ID_CHILD)
Child child;
}
class Child{
@ID
long id;
@OneToOne(mappedBy = "child", cascade = CascadeType.ALL)
Parent parent;
Date date;
}
我需要通过 child 的字段获取 parent。需要 Parent 谁有 child 并且日期介于两个日期之间。
我尝试编写 class Parent规范,但不明白如何完成。
public class ParentSpecification {
private ParenSpecification() {
}
public static Specification<Parent> byChildName(Date one, Date two){
return (root, query, criteriaBuilder) -> {
??????????
return criteriaBuilder....
};
}
}
以下代码可能对您有所帮助。在这里找到 child 日期前的 parent。您可以根据需要进行更改。
public class ParentSpecification {
public static Specification<Parent> byChildDate(Date one, Date two){
return (root, query, criteriaBuilder) ->
criteriaBuilder.between(root.get("child").get("date"), one, two);
}
}
如何通过child的字段获取parent实体?我使用规格
我有存储库
ParentRepository extends JpaRepository<Parent, Long>, JpaSpecificationExecutor<Parent>{
}
还有两个班级:
class Parent{
@Id
long id;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = ID_CHILD)
Child child;
}
class Child{
@ID
long id;
@OneToOne(mappedBy = "child", cascade = CascadeType.ALL)
Parent parent;
Date date;
}
我需要通过 child 的字段获取 parent。需要 Parent 谁有 child 并且日期介于两个日期之间。
我尝试编写 class Parent规范,但不明白如何完成。
public class ParentSpecification {
private ParenSpecification() {
}
public static Specification<Parent> byChildName(Date one, Date two){
return (root, query, criteriaBuilder) -> {
??????????
return criteriaBuilder....
};
}
}
以下代码可能对您有所帮助。在这里找到 child 日期前的 parent。您可以根据需要进行更改。
public class ParentSpecification {
public static Specification<Parent> byChildDate(Date one, Date two){
return (root, query, criteriaBuilder) ->
criteriaBuilder.between(root.get("child").get("date"), one, two);
}
}