JPA Entity и его пользовательские функции - PullRequest
2 голосов
/ 18 марта 2012

У меня есть объект Место проведения с его событиями:

  Event { ID, Name, DateTime }
  Venue { ID, Name, @OneToMany List<Event> events}

Чего я хотел бы добиться, так это уметь вызывать эти функции в поле зрения (с OpenEntityManagerInView):

  customVenue.getId(); // no problem
  customVenue.getName(); // no problem
  customVenue.getEvents(); // no problem
  customVenue.getCurrentEvents(); // hm?
  customVenue.getPastEvents(); // hm?

В базе данных могут быть тысячи событий, поэтому перебор «событий» для получения текущих событий может быть не очень хорошей идеей.

Это правильный подход? Это возможно? Как я могу разделить события на текущие и прошлые и заказать их?

Спасибо!

1 Ответ

1 голос
/ 19 марта 2012

Конечно, это возможно. Но не использовать метод customVenue (если только у сущности нет ссылки на менеджер сущностей, что является плохой идеей).

Выполнить запрос:

String jpql = "select event from Venue venue"
              + " inner join venue.events event"
              + " where event.date < :now"
              + " order by event.date asc";
List<Event> pastEvents = em.createQuery(jpql, Event.class)
                           .setParameter("now", new Date())
                           .getResultList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...