Dto сущность внутри запроса HQL
Задача в том, чтобы из запроса получить DTO, который в свою очередь в себе имеет помимо Long и String ещё один DTO. Как это указать в HQL запросе? Запрос следующий:
SELECT new GroupChatDto(c.id, c.title, ******) FROM Chat c WHERE c.chatType = :chatType.
Вместо звёздочек нужно указать что здесь ещё один DTO.
Вот DTO который мне нужно получить из запроса:
public class GroupChatDto {
private long id;
private String chatName;
private MessageDto lastMessageDto;
public GroupChatDto(long id, String chatName) {
this.id = id;
this.chatName = chatName;
}
}
Ответы (1 шт):
Один из успешных вариантов реализации данного вопроса заключается в том, что бы в сущности DTO которую мы хотим получить создать конструктор, который помимо своих значений может включать ещё и параметры внутренней DTO сущности. Благодаря этому из конструктора можно создать внутреннюю DTO сущность.
Можно использовать для всех кастомных объектов.