Jpa получить родителя по полю child - PullRequest
0 голосов
/ 31 октября 2018

Как получить родительскую сущность по дочернему полю? Я использую спецификацию

У меня есть хранилище

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

Мне нужно получить родителя по полю ребенка. Нужен родитель, у которого есть ребенок с датой между двумя датами.

Я пытался написать класс ParentSpecification, но не понимаю, как это сделать.

public class ParentSpecification {
    private ParenSpecification() {
    }
    public static Specification<Parent> byChildName(Date one,  Date two){
        return (root, query, criteriaBuilder) -> {
           ??????????            
return criteriaBuilder....
        };
    }
}

1 Ответ

0 голосов
/ 31 октября 2018

Следующий код может вам помочь. Здесь найдите родителя по дате рождения ребенка. Вы можете изменить в соответствии с вашими потребностями.

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