我有这样的情景:
在我有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”;
有什么想法吗?
答案 0 :(得分:3)
尝试以下方法:
SELECT e.id
FROM Appointment a
INNER JOIN a.services s
INNER JOIN s.employee e
where s.start <= ? and s.end >= ?