0
Я имею namedQuery в классе сущностей, определенных какNamedQuery выборочно определить атрибуты
@NamedQuery(name = "Emp.findAll",
query = " select new test.entity.Emp(o.empNo, o.salary, o.project) from Emp o ")
Конструктор
public Emp(String empNo, String salary, Project project) {
this.empNo = empNo;
this.salary= salary;
this.project = project;
}
и генерируется SQL является
SELECT t0.emp_no, t0.salary, t1.project_id, t1.project_name, t1.project_desc
FROM EMP t0, PROJECTS t1 WHERE (t1.project_id (+) = t0.project_id)
В namedQuery как я выборочно объявлять ProjectID и projectName вместо всех атрибутов из класса Project? Я не хотел бы отображать все атрибуты класса Project в namedQuery.
Как я могу это достичь?
Update 1
public Emp(String empNo, String salary, Long projectId, String projectName) {
Project pr = new Project();
this.empNo = empNo;
this.salary= salary;
pr.setProjectId = projectId;
pr.setProjectName = projectName;
}
Проверьте мой обновленный ответ. –
У меня нет 'projectId', определенный в классе Emp, только класс' Project'. – user75ponic
Я модифицировал конструктор как 'this.project.setProjectId (projectId);' Однако я получаю 'Исключение Описание: Исключение было выполнено при выполнении ReportQuery с выражением конструктора: java.lang.reflect.InvocationTargetException Запрос: ReportQuery (test.entity.Emp) ' – user75ponic