2011-05-27 6 views
0

Это то, что у меня есть (конечно в Sintetic формы)Java EE, EntitiManager запрос, выберите JOINED объектов

@Entity 
public class Event { 
    @Id 
    private int id; 
    private String name; 
    private Set<ScheduledEvents> scheduledEvents 

} 

@Entity 
public class ScheduledEvents { 
    @Id 
    private int id; 
    private Date date; 

} 

Если я хочу retrive всех событий ... ну, это довольно просто:

List<Event> events = em.getResultList("SELECT e FROM Event e"); 

Теперь, что я хотел бы сделать, это вернуть все запланированные события (ScheduledEvents) в будущем (с расписаниемEvents.date> = СЕГОДНЯ). Я сделал что-то вроде этого ... но, конечно, это не сработает!

List<Event> events = em.getResultList("SELECT e FROM Event e JOIN se WHERE se.date>?1", new Date()); 

Любая помощь?

+0

Mauro. Что именно не работает? Вы получаете исключение или неправильные результаты? –

ответ

2
SELECT e FROM Event e JOIN e.scheduledEvents se WHERE se.date > ?1 

должен сделать трюк. Однако вы будете получать одно и то же событие несколько раз, если это расписание в несколько будущих дат. Используйте select distinct e..., чтобы получить каждое событие один раз

+0

он работал как шарм! Благодаря... – Mauro

Смежные вопросы