Я пытаюсь выяснить, достижимо ли следующее при стандартном отображении Hibernate.
Пример домена
Представьте, что у нас есть Beer
сущность и Pub
сущность. Паб предлагает пиво, поэтому он содержит список пива (я буду использовать упрощенный псевдокод, чтобы сделать пример менее подробным):
@Entity class Beer(id, name)
@Entity class Pub(id, beers: List<Beer>)
Это сработало бы с помощью сопоставления таблицы соединений:
table beer(id, name)
table pub(id)
table pub_beer(pub_id, beer_id)```
Проблема
Теперь клиент заходит в паб и хочет заказать любое действующее пиво в мире. В качестве примера давайте предположим, что для этого Pub необходимо знать о всех существующих сортах пива. Другими словами, мы хотели бы вставить все пиво в сущность Pub:
@Entity class Pub(
id,
beers: List<Beer>, // from pub_beer table
allBeersInTheWorld: List<Beer> // pretty much SELECT * from beer
)
Материал, который я пробовал
Я изучил @Formula
(работает для примитивных значений), @CollectionTable
и @XXXToMany
нужно @JoinColumn
, которого в этом примере не существует.