Вложение таких выражений конструктора невозможно AFAIK. Есть один способ сделать это, о котором я знаю, но это грязная и безобразная работа вокруг. Я поместил все параметры в один конструктор, а затем создал экземпляры других объектов класса внутри конструктора.
Пример:
public CommentDTO(Long id, String body, LocalDateTime datePosted,
LocalDateTime lastModifiedDate, Long userId,
String login, String avatarUrl, boolean hireable) {
this.id = id;
this.body = body;
this.datePosted = datePosted;
this.lastModifiedDate = lastModifiedDate;
this.author = new UserDTO(userId, login, avatarUrl, hireable);
Таким образом, в запросе JPQL должны быть все эти параметры.
Опять же, не рекомендую делать это таким образом, так как это становится на 100% неприемлемым. Но это единственный способ сделать это с помощью выражений конструктора.
Я просто реорганизовал использование проекций на основе интерфейса. Если вы используете Spring Data JPA, просто смешно настроить его для вложенных проекций.