Используйте пункт «Где» в коллекции JPA @OneToMany - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь реализовать исторические записи, используя первое предложенное решение здесь .

В моем проекте у нас есть маршруты, остановки, дети и записи о том, когда каждый ребенок прибыл на остановку.

Когда время остановки обновляется, я хочу, чтобы записи все еще были связаны с этой остановкой, но я использую время, которое остановка имела при создании.

Единственная проблема, с которой я столкнулся на данный момент, заключается в том, что с Hibernate, это то, что при получении остановок маршрута я хочу игнорировать остановки, отмеченные как исторические.

Могу ли я сконфигурировать коллекцию @OneToMany в маршруте для выборки только остановок с помощью предложения where?

1 Ответ

0 голосов
/ 10 октября 2018

Нет, @OneToMany просто указывает на статические отношения сущностей, которые под капотом транслируются во внешние ключи и т. Д., Вместе с некоторыми подсказками о быстром / ленивом извлечении, каскадном обновлении / удалении.

Что вам нужно для вашего дела, так это создать @NamedQuery, который принимает предложение where.Он использует JPQL, поэтому вы все равно будете взаимодействовать с вашей объектной моделью.

Поскольку вы используете spring-data, вы также можете использовать метод хранилища, предполагая, что у вас есть RouteRepository или StopRepository, где вы получаете неисторические Stop s для ваших Route.

Вы не включили никаких примеров кода, поэтому я не могу предоставить более подробную информацию, чем это.

...