我的persistence.xml文件如下所示。我将此文件保存在src / main / resources / META-INF /下。
<?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="JSFEntityManager" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>com.nsm.bma.model</class>
<!-- Configuring JDBC Connection -->
<properties>
<property name="javax.persistence.jdbc.driver" value="******" />
<property name="javax.persistence.jdbc.url" value="*********" />
<property name="javax.persistence.jdbc.user" value="*******" />
<property name="javax.persistence.jdbc.password" value="******" />
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
<property name="hibernate.allow_update_outside_transaction" value="true" />
</properties>
</persistence-unit>
我的刀模如下所示: 公共类UserDaoImpl实现UserDao {
@PersistenceContext(unitName = "JSFEntityManager")
private EntityManager entityManager;
@SuppressWarnings("unchecked")
public List<User> getUsers() {
Query query = entityManager.createQuery("FROM User");
return query.getResultList();
}
使用下面的语句可处理Resource_Local事务类型。但我想使用“ JTA”
EntityManager entityMgrObj = Persistence.createEntityManagerFactory(JSFEntityManager).createEntityManager();
我正在使用Apache Tomcat v7.0服务器。我相信persistence.xml不会被读取(如果我删除persistence.xml,它不会报错并且控制台中没有错误,只是objectManager为null)。
请帮助我在这里做错了什么。 Tomcat 7.0与JTA不兼容吗?