Горячий, чтобы добавить список параметров другого объекта в jpa Критерии - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть класс Director

   public class Director {
      private Long id;

      @OneToOne(cascade = CascadeType.ALL)
      @JoinColumn(name="transacao_id")
      private Company company;
      private Date registrationDate;

       ...
   }

У меня есть класс Company

   public class Company {
      private Long id;
      private String cnpj;
      private String description;

       ...
   }

Мне нужно добавить еще один фильтр в предикаты ...

Мне нужнополучить список из Director , отфильтровав список cnpj с использованием предикатов jpa, например:

private Predicate[] criarRestricoes(FilterDTO filter, CriteriaBuilder builder, Root<Director> root) {

        List<Predicate> predicates = new ArrayList<>();
        Date today = new Date();

        if (filter.getRegistrationDate() != null) {

            predicates.add(builder.between(root.get("registrationDate").as(Date.class), today, filter.dateParam));

        } 

       if (!StringUtils.isEmpty(filter.getCnpj())) {

            predicates.add(builder.equal(???????????, ???????????????);

        } 

        return predicates.toArray(new Predicate[predicates.size()]);
    }

1 Ответ

0 голосов
/ 06 марта 2019
builder.equal(root.join("company").get("cnpj"), filter.getCnpj());
...