Я работаю с JBoss wildfly 9. У меня есть поставщик развертывается как модуль в: папкуEntityManager не вводят в модуль JBoss
wildfly > modules > com > mycompany > myprovider
. Тогда у меня есть проект jpa с написанием и чтением диаграммы DAO внутри моей базы данных. Я хочу обработать транзакцию DAO с использованием JTA, но для того, чтобы сделать класс DAO для myprovider, мне нужно также поставить проект DAO JPA внутри каталога модулей.
Теперь сталкивается с реальной проблемой: кажется, я не могу использовать @PersistenceContext аннотации впрыснуть лицо managare в мою EntityManager varible:
@PersistenceContext(unitName = "KAS-Mapping")
private EntityManager entityManager;
это мой persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="KAS-Mapping">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>my.class.persistence.model.MapGroup</class>
<class>my.class.persistence.model.MapUser</class>
<properties>
<property name="javax.persistence.provider" value="org.hibernate.ejb.HibernatePersistence" />
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="javax.persistence.provider" value="org.hibernate.jpa.HibernatePersistenceProvider"/>
<property name="javax.persistence.transactionType" value="JTA"/>
<property name="javax.persistence.jtaDataSource" value="java:jboss/datasources/MyDS"/>
</properties>
</persistence-unit>
</persistence>
Почему Я не могу вставить контекст в модули jar? Что я не так?
Почему вы считаете, что это плохой образец? Мне нужен доступ к базе данных togheter с другим уровнем приложения/приложения. Не следует ли бесполезно воспроизводить то же самое dao для всех из них? – Alex
Я думаю, мне нужно будет узнать больше о том, что делает ваш провайдер. Поставщик не должен зависеть от дао, хотя, если есть какая-либо зависимость, он должен быть провайдером <-dao <-applicaiton только одним способом. Более типичным способом сделать это вместо развертывания модуля является создание вашего dao в виде файла с версией .jar, а затем включить его в ваши различные файлы .war. – teacurran
Это поставщик ключей и нужен для аутентификации puropse. Дао используется для синхронизации файла свойств keycloak с моей собственной базой данных пользователей. Ограничение заключается в том, что keycloak spi можно развернуть как модуль внутри jboss, поэтому он обрабатывается как модуль jboss, то есть отдельный баннер с собственной областью изоляции. Кто-то сказал мне, что модули jboss не интересуются контекстом сервера приложений, поэтому невозможно сделать инъекцию – Alex