Hibernate 如何在hql中选择员工?

Hibernate 如何在hql中选择员工?,hibernate,hql,Hibernate,Hql,我有这样一个场景: 在日程表中,我有约会,其中包含不同服务的列表。每个服务都与提供服务的员工相关 代码如下所示: class Appointment extends BaseEntity{ ... private List<Service> services; private Date start, end; ... // getter/setter } class Service extends BaseEntity{ ...

我有这样一个场景:

在日程表中,我有
约会
,其中包含不同
服务的列表
。每个
服务
都与提供服务的
员工相关

代码如下所示:

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
}
类约会扩展了BaseEntity{
...
私人名单服务;
私人约会开始、结束;
...
//吸气剂/塞特
}
类服务扩展了BaseEntity{
...
私人雇员;
...
//吸气剂/塞特
}
类Employee扩展了BaseEntity{
...
私有字符串id;
...
//吸气剂/塞特
}
我想写一个查询,它选择所有
服务的
员工
ID,这些服务在指定的时间间隔内(从date1到date2)在
约会
中提供

我尝试了几件事,但都不对。我的主要问题是,我不知道如何正确使用
约会中的
列表
,以及如何将其与
员工
id连接。我尝试了此方法,但无效:

“从约会a中选择e.id,服务s左加入s.employee e,其中s在元素中(a.services),s.start=date2”

有什么想法吗?

试试以下方法:

SELECT e.id 
FROM Appointment a 
INNER JOIN a.services s 
INNER JOIN s.employee e 
where s.start <= ? and s.end >= ?
选择e.id
从预约
内部连接a.s
内部连接s.e
其中s.start=?
尝试以下操作:

SELECT e.id 
FROM Appointment a 
INNER JOIN a.services s 
INNER JOIN s.employee e 
where s.start <= ? and s.end >= ?
选择e.id
从预约
内部连接a.s
内部连接s.e
其中s.start=?

我对此投了更高的票,但您能否格式化您的答案,这样我们就不必滚动了?谢谢overmeulen。在我的手机上好多了。我投了这个,但是你能不能格式化你的答案,这样我们就不用滚动了?谢谢你。在我的手机上好多了。