Есть ли другой способ использовать запрос выбора без параметризованного конструктора.
Например:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<BookWithAuthorNames> cq = cb
.createQuery(BookWithAuthorNames.class);
// Define FROM clause
Root<Book> root = cq.from(Book.class);
Join<Book, Author> author = root.join(Book_.author);
// Define DTO projection
cq.select(cb.construct(
BookWithAuthorNames.class,
root.get(Book_.id),
root.get(Book_.title),
root.get(Book_.price),
cb.concat(author.get(Author_.firstName), ' ',
author.get(Author_.lastName))));
здесь root .get () принимает / отображает значение из конструктора класса DTO. Поскольку я удалил конструктор, я получаю ошибку
Unable to locate appropriate constructor on class
Как я могу изменить свой запрос на выборку, чтобы я мог использовать запрос на выборку без конструктора DTO.
Я не хочу оставлять конструктор, поскольку у него более 15 параметров, это вызывает проблемы с сонаром. Я хочу провести рефакторинг, но не могу найти никакого решения, для которого я могу использовать что-то еще вместо конструктора.