Мне интересно, возможно ли все-таки красиво сопоставить общие сущности с JPA.
Что такое общая сущность для меня?Скажем, многие из моих доменных сущностей имеют ассоциированные изображения.Таким образом, могут быть такие отношения, как UserProfile -> Image
(изображение профиля) или Event ->* Image
(изображения, рекламирующие событие, один ко многим).
При использовании чистого SQL я мог бы получить таблицу image
сowner_id
столбец, содержащий UserProfile#ID
или Event#ID
.Поскольку мне никогда не придется находить владельца изображения, а вместо этого изображения владельца, мне все равно, что я не могу сразу сказать, является ли изображение 5 изображением профиля или изображением события.
Я предполагаю, что на уровне JPA тот же самый "хак" может работать, пока у меня нет отношений один-ко-многим или много-к-одному с Image
, потому что им потребуется обратная ссылка на... да, это проблема.Я не могу создать эту обратную ссылку.
Единственный возможный подход, который приходит на ум, - это создать abstract Image
, содержащий все общие поля Image
, а затем создать конкретный подкласс для каждого отношения.Имеет смысл?