Может кто подскажет с помощью чего такое можно зделать? Сейчас у меня есть @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 + фильтр по листам.