Я работаю с JBoss Wildfly в качестве сервера приложений на моем уровне JPA.Присоединение JavaSE EntityManager к JTA
Для получения технических требований мне нужно получить менеджер непрерывности моего объекта, используя подход, управляемый JavaSE/приложениями. Т. е .:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("idelivery", properties);
EntityManager em = emf.createEntityManager();
MyEntity exUser= new MyEntity();
try{
Context context = new InitialContext();
UserTransaction userTransaction = (UserTransaction)context.lookup("java:comp/UserTransaction");
userTransaction.begin();
em.persist(exUser);
userTransaction.commit();
где в свойствах я установить:
properties.put ("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect");
properties.put("javax.persistence.provider", "org.hibernate.jpa.HibernatePersistenceProvider");
properties.put("javax.persistence.transactionType", "JTA");
properties.put("javax.persistence.jtaDataSource", dataSourcePath);
Проблема, конечно, с строк кода выше, я не могу связать EntityManager с менеджером транзакций контейнера JTA.
Итак, мой вопрос: есть ли какой-то пример или каким-то образом я могу заставить менеджера сущности присоединиться к сложной транзакции JTA? Я не знаю ... может быть, с производителем CDI, как я могу помещать entitymanager в контейнерный контекст?
спасибо ... но таким образом я пересечь мои требования динамичность. Мне нужно инициализировать EntityManagerFactory с помощью SE createEntityManagerFactory, потому что я должен установить источник данных во время выполнения и динамически изменять его. – Alex
Передача свойств в 'emf.createEntityManager (свойства)' недостаточно динамична? Или проблема в том, что он игнорирует свойства, которые изменяют источник данных? – OndrejM
ой ... извините ... я пропустил это (свойства) ... конечно, мне нужно попробовать ... дайте знать ... !!! спасибо – Alex