hibernate - 我正在尝试使用 struts 和 hibernate 建立与 sql server 的 DB 连接,但在 Listener 类中出现错误
问题描述
public void contextInitialized(ServletContextEvent arg0) {
EntityManager em = null;
try{
TransactionManagerServices.getTransactionManager();
System.out.println("In Listener");
emf = Persistence.createEntityManagerFactory("com.jpa");
em = emf.createEntityManager();
InitialContext ic = new InitialContext();
ut = (UserTransaction) ic.lookup("java:comp/UserTransaction");
ut.begin();
em.joinTransaction();
ut.commit();
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
if(ut!=null) ut.rollback();
} catch(Exception e1) {
e1.printStackTrace();
}
} finally {
if(em != null && em.isOpen()) {
em.close();
}
}
}
这是错误:[PersistenceUnit: com.jpa] Unable to build EntityManagerFactory
persitence.xml 是
<!-- <?xml version="1.0" encoding="UTF-8"?> -->
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/持久性/orm_2_0.xsd ">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:comp/env/jdbc/empDS</jta-data-source>
<class>com.jpa.Employee</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2008Dialect"/>
<property name="hibernate.connection.autocommit" value="false"/>
<property name="hibernate.max_fetch_depth" value="3"/>
<property name="hibernate.show_sql" value="false" />
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup"/>
</properties>
</persistence-unit>
解决方案
推荐阅读
- c# - C# 查找与被单击的面板相邻的面板
- visual-studio - 无法在 Visual Studio 2019 中调试使用 Visual Studio 2017 创建的 Xamarin 项目
- .net - 如何通过 Traefik 从外部网络(Docker 容器外部)发出 gRPC 请求?
- mysql - 如何将主键作为外键引用到各种表
- php - PHP - 当它进入带有断点的文件时调试停止
- kotlin - Vert.x WebClient Http Get 返回 400
- javascript - JavaScript map() 函数在内部有返回值时如何迭代直到数组大小?
- json - 数据工厂中的不同 JSON 模式
- typescript - 如何使用 Typescript 在 Vue 应用程序中使用 webcomponents
- javascript - 如何使用javascript请求gps权限