Java EE, запрос EntitiManager, ВЫБЕРИТЕ СОЕДИНЕННЫЕ объекты - PullRequest
0 голосов
/ 27 мая 2011

Это то, что у меня есть (конечно в синтетической форме)

@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;

}

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

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

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

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

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

1 Ответ

2 голосов
/ 27 мая 2011
SELECT e FROM Event e JOIN e.scheduledEvents se WHERE se.date > ?1

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

...