【发布时间】:2014-01-31 23:29:40
【问题描述】:
我有以下 java 类:
class Person {
private long id;
private String firstName;
private String lastName;
private Company company;
...
}
class Company{
private long id;
private String name;
private String Country;
private long sector_id;
...
}
class ProjectParticipants {
private long id;
private long project_id;
private long person_id;
}
如果我想选择特定公司的所有人,我可以这样做:
List<Person>=session.createQuery("from Person where company_id:companyId").setLong("companyId",companyId).list();
如果我想找到项目参与者,对于来自特定公司的特定项目,我可以在 SQL 中执行以下操作: select * from Person p, ProjectParticipants r where p.id=r.person_id and r.project_id= and p.company_id=;
或
select * from Person where id in (select person_id from ProjectParticipants where project_id=<project_id>) and company_id=<company_id>;
但是,除非我实例化公司,否则使用休眠查询对象似乎无法正常工作。有没有办法进行此查询,而不必从其 id 实例化公司对象?
【问题讨论】: