Из того, что я видел из Docs, jpaspecificationExecutor теперь имеет способ обработки проекций с использованием метода findby () .
Первый метод действительно возвращает записи, хотя и правильно, хотя Он выбирает все столбцы, как найдено в определении сущности. Вот почему я хочу использовать проекцию и только выбрать свойство x (часть CompositeKey )
public List findStockLotsBasedOnSpec(Map attributes) {
Specification specification = CustomAttributeSpecification.buildSpecification(attributes);
return findAll(specification).stream()
.map(entity -> entity.getId().getX())
.distinct()
.collect(Collectors.toList());
}
public List findStockLotsBasedOnSpecAndProjection(Map attributes) {
Specification specification = CustomAttributeSpecification.buildSpecification(attributes);
return findBy(specification, q -> q.as(XProjection.class).all());
}
....
public interface XProjection {
String getId_X();
}
Является ли я использованию Queryfunction , чтобы получить работу, работая?
findBy(Specification spec, Function queryFunction)
Подробнее здесь: https://stackoverflow.com/questions/794 ... projection
Spring Boot 3.4 - спецификация и проекция JPA ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение