【问题标题】:how to select employee in hql?如何在hql中选择员工?
【发布时间】:2013-03-13 14:47:30
【问题描述】:

我有这样的场景:

在我的日程安排中,我有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
}

我想编写一个查询,它选择所有ServicesEmployee id,它们在指定的时间间隔内(从日期1 到日期2)在Appointments 中提供。

我尝试了几件事,但没有一个是正确的。我的主要问题是我不知道如何正确使用Appointment 中的List 并将其与Employee id 连接起来。我试过了,但它不起作用:

"select e.id from Appointment a, Service s left join s.employee e where s in elements(a.services) and s.start = date2";

有什么想法吗?

【问题讨论】:

    标签: hibernate hql


    【解决方案1】:

    尝试以下方法:

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

    【讨论】:

    • 我对此投了赞成票,但您能否格式化您的答案,这样我们就不必滚动了?
    • 谢谢overmeulen。在我的手机上好多了。
    猜你喜欢
    • 2011-01-02
    • 1970-01-01
    • 2011-06-20
    • 2016-06-25
    • 2010-11-23
    • 1970-01-01
    • 2012-03-26
    • 2014-10-22
    • 1970-01-01
    相关资源
    最近更新 更多