Использование аннотаций В JPA я могу ограничить дочерние записи предложением where? - PullRequest
2 голосов
/ 02 мая 2011

У меня есть EJB с такими отношениями @onetomany, как в моем родительском классе (Таймслот):

@OneToMany(mappedBy = "rsTimeslots")
private List<RsEvents> rsEventsList;

У меня также есть функция для получения rsEventList:

public void setRsEventsList(List<RsEvents> rsEventsList) {
    this.rsEventsList = rsEventsList;
}

Это все было сгенерировано автоматически. В своем коде уровня представления я могу получить объект временного интервала и сделать что-то вроде timeslot.getRsEventList() и получить все дочерние элементы этого временного интервала. Теперь мне нужно ограничить этот список на основе критериев. Например, я хочу, чтобы только события, которые являются дочерними элементами этого временного интервала со статусом 1. Есть ли способ сделать это с аннотациями?

1 Ответ

1 голос
/ 02 мая 2011

Не в JPA.

Обычно вы выполняете запрос для этого, используя JPQL или API критериев.

Некоторые провайдеры JPA предоставляют способы ограничения отношений, но я думаю, что вы бы это сделалилучше всего с запросом или предоставлением метода get / filter для вашего класса, который просто обращается к списку и фильтрует его (т.е. getStatus1Events ()).

Пример EclipseLink о наличии критериев для сопоставления см., http://wiki.eclipse.org/EclipseLink/Examples/JPA/MappingSelectionCriteria

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...