如何在hql中选择员工?

时间:2013-03-13 14:47:31

标签: hibernate hql

我有这样的情景:

在我有Appointments的时间表中,其中包含不同Services的列表。每个Service都与Employee相关,即提供它。

代码看起来像这样:

class Appointment extends BaseEntity{
    ...
    private List<Service> services;
    private Date start, end;
    ...
    // getter/setter
}

class Service extends BaseEntity{
    ...
    private Employee employee;
    ...
    // getter/setter
}

class Employee extends BaseEntity{
    ...
    private String id;
    ...
    // getter/setter
}

我想编写一个查询,选择所有Employee的{​​{1}} ID,它们在指定的时间间隔(从date1到date2)Services中提供。< / p>

我尝试了几件事,但我什么都没有。我的主要问题是我不知道如何正确使用Appointments中的List并将其与Appointment ID相关联。我试过这个,但它不起作用:

“从约会a中选择e.id,服务s left join s.employee e其中s in elements(a.services)和s.start&lt; = date1 and s.end&gt; = date2”;

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

尝试以下方法:

SELECT e.id 
FROM Appointment a 
INNER JOIN a.services s 
INNER JOIN s.employee e 
where s.start <= ? and s.end >= ?