В настоящее время мы используем проблемную настройку нашего EntityManager
, как показано ниже.Мы хотели бы изменить значение с @PersistenceUnit
на @PersistenceContext
для менеджера сущностей.Как мы можем использовать тот же @Inject
механизм?
persistence.xml:
<persistence-unit name="my-data-source" transaction-type="JTA">
<jta-data-source>java:/foo/model</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.show_sql" value="${hibernate.show_sql:false}"/>
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.use_sql_comments" value="true" />
<property name="hibernate.order_inserts" value="true" />
<property name="hibernate.order_updates" value="true" />
<property name="hibernate.jdbc.batch_versioned_data" value="true" />
<property name="hibernate.jdbc.batch_size" value="30" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL57InnoDBDialect" />
</properties>
</persistence-unit>
Вот так мы получаем менеджера сущностей:
@Stateless
public class EntityManagerProvider {
@PersistenceUnit(unitName = "my-data-source")
private EntityManagerFactory emFactory;
@Produces
@Default
public EntityManager getDefaultEntityManager() {
return emFactory.createEntityManager();
}
}
И в приложении мы вводим менеджер сущностей следующим образом:
@Inject
private EntityManager entityManager;