0

私にはシナリオがあります:

スケジュールには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
}

指定された時間間隔(date1からdate2)で提供されるEmployeeすべてのIDを選択するクエリを作成したいと思います。ServicesAppointments

私はいくつかのことを試みましたが、何も正しくありませんでした。List私の主な問題は、を正しく使用し、これをIDAppointmentに接続する方法がわからないことです。Employee私はこれを試しましたが、機能しません:

"アポイントメントaからe.idを選択し、サービスの左結合s.employee e where s in elements(a.services)and s.start <= date1 and s.end> = date2";

何か案は?

4

1 に答える 1

3

次のことを試してください:

SELECT e.id 
FROM Appointment a 
INNER JOIN a.services s 
INNER JOIN s.employee e 
where s.start <= ? and s.end >= ?
于 2013-03-13T17:01:28.640 に答える