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 сущность.

Можно использовать для всех кастомных объектов.

→ Ссылка