Я ' m, используя JPQL, и хотите получить некоторые обычные параметры и коллекцию в выражении конструктора для непосредственного создания DTO-объектов. Но если Коллекция пуста, я всегда получаю сообщение об ошибке, потому что он не находит нужный конструктор:
Класс DTO выглядит следующим образом:
public class DTO {
private long id;
private String name;
private Collection<Child> children;
public DTO (long id, String name, Collection<Child> children){
this.id = id;
this.name = name;
this.children= children;
}
}
Дочерний класс:
public class Child {
private String name;
private int age;
}
И теперь выражение конструктора выглядит следующим образом :
return (List<DTO>) getEm().createQuery("SELECT DISTINCT NEW de.DTO(p.id, p.name, p.childs)
FROM Parent p").getResultList();
Текущая проблема заключается в том, что в случае, если Коллекция p.childs пуста, он говорит, что не находит нужный конструктор, ему требуется (long, String, Child) вместо (long, String, Collection).
У вас есть какое-либо решение или просто невозможно использовать коллекцию в выражении конструктора?
И еще одно: если я легко создам два конструктора (..., дочерние элементы коллекции И ..., Child childs) Я не получаю результатов, но и ошибок тоже ... на мой взгляд, не совсем удовлетворительно: - /