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);
    }
}