Проблема:
У меня есть два взаимодополняющих проекта: базовый (базовый проект) с общими сущностями и конкретный (конкретный проект), который должен запрашивать сущности из первого проекта.
Они оба имеют доступ к одной и той же базе данных, но в разных схемах и с разными пользователями / грантами. Тем не менее, оба имеют по крайней мере грант «SELECT» для общих таблиц.
Я нашел три возможности интегрировать их в файл persistence.xml для конкретного проекта:
Перечислите каждую отдельную сущность из Базового проекта, используя теги в файле persistence.xml для конкретного проекта. Недостаток: каждый раз, когда появляется новая сущность, она должна быть добавлена в конкретный проект, чтобы быть видимой
Добавьте файл базового проекта «.jar», используя тег в файле persistence.xml конкретного проекта. Недостаток: это должен быть реальный путь к файлу jar, который может измениться;
(пока ЛУЧШЕЕ) Добавьте ПАКЕТ сущностей базового проекта в файл persistence.xml, используя тег , как описано в Документация по настройке Hibernate entityManager . Недостаток: приходится использовать аннотации уровня пакета через файл package-info.java, который я нигде не могу найти, как это сделать.
Вопрос:
Кто-нибудь знает, действительно ли возможно использовать аннотацию уровня пакета для обозначения пакета сущности в файле persistence.xml?
В документации Hibernate говорится, что это можно сделать, но не говорится, как:
класс
Элемент class определяет
полное имя класса, которое вы
будет карта. По умолчанию все правильно
аннотированные классы и все hbm.xml
внутри архива находятся файлы
добавлен в единицу сохраняемости
конфигурации. Вы можете добавить некоторые
внешняя сущность через класс
элемент хотя. Как продолжение к
спецификация, вы можете добавить пакет
имя в элементе (например,
org.hibernate.eg).
Внимание, пакет будет включать
метаданные, определенные на уровне пакета
(т.е. в package-info.java), он не будет
включить все классы данного
пакет.