У меня есть другая проблема гибернации.Я пытаюсь получить все проекты, которые имеют самые последние сообщения.Для этого я пытаюсь получить все сообщения, сгруппировать их по идентификатору проекта и применить функцию max к обновленному столбцу.Мой запрос построен так, как показано здесь:
query.select(from).orderBy(builder.desc(from.get(Message_.UPDATED))).multiselect(from.get(Message_.ID),builder.max(from.get(Message_.UPDATED))).groupBy(from.get(Message_.PROJECT));
Но я получаю исключение,
[cause=org.hibernate.PropertyNotFoundException: no appropriate constructor in class: de.ls5.wt2.Message]
, когда он не может преобразовать Результат обратно в объект сообщения.Должен ли я определить правильный конструктор?Это было бы очень прискорбно, потому что он содержит другие объекты, что делает запрос очень сложным.И объединение всех сообщений с правом соединения типа с вышеупомянутым запросом не работает, право соединения типа sicne не поддерживается.Любой совет, как я могу получить список объектов сообщения, которые имеют идентификатор результата запроса выше?
Любая помощь приветствуется.
РЕДАКТИРОВАТЬ: Класс сообщения:
@Entity
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long id;
private Date created;
private Date updated;
@OneToOne
private User creator;
@OneToOne
private Project project;
private String content;
public Message() {
}
//getter and setter
}