Я использую 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).
Есть ли у вас какое-либо решение или просто невозможно использовать коллекцию в выражении конструктора?
Да, и еще одна вещь: если я легко создаю два конструктора (..., Collection childs и ..., Child childs), я не получаю никаких результатов, но и ошибок тоже нет ... в моих глазах не очень приятно: -/