@xxxxc

Как собрать Entity из двух таблиц с фильтром по листам?

Может кто подскажет с помощью чего такое можно зделать? Сейчас у меня есть @Repository, который
extends JpaRepository, JpaSpecificationExecutor
. Specification мне нужна, чтоб выполнить различные фильтры.
public static Specification<Entity> entityWithSpecification(List<Long> ids, Date startDate, List<String> books) {
    return (root, query, builder) -> {

        ArrayList<Predicate> predicates = new ArrayList<>();

        if (startDate != null) predicates.add(builder.greaterThanOrEqualTo(root.get("date").as(Date.class), startDate));
        if (ids != null) predicates.add(root.<Long>get("id").in(ids));
        if (books != null) predicates.add(root.<Stocks>get("book").as(String.class).in(books));

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

}


Сейчас мне нужно получить новую ExtendedEntity, с 2-3 дополнительными полями из двух таблиц. И всё так-же иметь возможность фильтровать. При чем ExtentedEntity не является JPA @Entity и в изначальной Entity нету никаких связей (@OneToMany и т.п.).

По сути всё что мне нужно, 2 обычных inner joinа , но как-то получить новую ExtendedEntity + фильтр по листам.
  • Вопрос задан
  • 32 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы