У меня есть модуль EJB M, содержащийся в модуле EAR.
M зависит от jar-файла data-model.jar, установленного как модуль JBoss и правильно загруженного с помощью jboss- файл развертывания-structure.xml.
Модуль работает без проблем, но я не могу не добавить каждую сущность как тег <class>
в файл persistence.xml.
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="persistenceUnitName" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/datasource</jta-data-source>
<class>com.bla.persistence.entity.EntityOne</class>
<class>com.bla.persistence.entity.EntityTwo</class>
...
Итак, возникает вопрос: есть ли способ указать постоянные управляемые классы, связанные с единицей сохранения, загружающей их из модуля JBoss, без добавления их всех в качестве тегов класса в файл persistence.xml?
По умолчанию единица сохраняемости связана с аннотированными управляемыми классами сохраняемости, содержащимися в корне единицы сохраняемости (ed jar-файл, в котором находится файл persistence.xml) (документы).
Я попытался добавить:
<exclude-unlisted-classes>false</exclude-unlisted-classes>
но это ничего не меняет (я читал, что приложения Java EE все равно используют это значение по умолчанию).
Я также мог бы использовать:
<jar-file>?</jar-file>
но я не знаю, как обратиться к модулю JBoss (и жесткое кодирование имени файла модуля кажется мне очень плохой практикой).
Работать с:
- JBoss EAP 6.4
- Спящий режим 4.2.18
- JPA 2