Выбрать / MultiSelect не работает в JPA (Spring Boot) - PullRequest
0 голосов
/ 22 апреля 2019

Я использую спецификацию JPA в проекте Spring Boot. Все критерии работают нормально. Но проблема в выборе / множественном выборе.

код -

@AllArgsConstructor
public class TodoSpecifications implements Specification<Todo> {
@Override
  public Predicate toPredicate(
      Root<todoEntity> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
    List<Predicate> predicateList = createPredicateList(root, criteriaBuilder);


    List<Selection<? extends Object>> selectionList = new ArrayList<Selection<? extends Object>>();
      Selection<? extends Object> selection = root.get("id");
      selectionList.add(selection);
    Selection<? extends Object> selection2 = root.get("name");
    selectionList.add(selection2);
    Selection<? extends Object> selection3 = root.get("type");
    selectionList.add(selection3);

    return query.multiselect(selectionList).where(criteriaBuilder.and(predicateList.toArray(new Predicate[] {}))).getRestriction();
  }
}

С этой спецификацией я пробовал это Список toDoEntity = todoRepository.findAll (todoSpecification); Это вернет полные данные. Но я ожидаю только выбранные столбцы.

1 Ответ

0 голосов
/ 26 июня 2019

У вас есть конструктор, который принимает 3 параметра? Чтобы иметь возможность использовать множественный выбор, вы должны создать конструктор в вашем TodoEntity как этот

public TodoEntity (Long id, String name, String type) {
this.id = id;
this.name =  name;
this.type = type;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...