论坛首页 入门技术论坛

JPA数据源转换Tomcat数据源 配置问题 随笔

浏览 2387 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-27  

在使用到jpa 的开发过程中,有时会用到数据源转换的问题,

以下方法只是我个人遇到的一种情况及解决方法,如有不同的情况,请大家贴出来供大家参考

 

tomcat启动时遇到:
Hibernate Dialect must be explicitly set 解决方法
错误提示:没有设置数据库方言(dialect)

persistence.xml
<persistence-unit name="GameInfoPU"
  transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
  <class>com.business.userPass</class>
 </persistence-unit>
</persistence>

 

//Tomcat数据源配置

<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!--配置数据源-->
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="20" maxIdle="2" maxWait="5000" name="hibernate/mysql" password="admin" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/dbcurr" username="root" />

</Context>

此时的配置启动时会出现:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set

解决方法: 修改persistence.xml文件为如下:

persistence.xml
<persistence-unit name="userPassPU"
  transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.ejb.HibernatePersistence</provider> //默认jpa本身数据源
  <non-jta-data-source>java:comp/env/hibernate/mysql</non-jta-data-source> // 设置数据库方言,默认去找tomcat数据源
  <class>com.business.userPass</class> //实体类,表
 </persistence-unit>
</persistence>

 

默认jpa本身数据源  tomcat数据源 不能同时都配置,否则出错,冲突

以上方法只是我个人遇到的一种情况及解决方法,如有不同的情况,请大家贴出来供大家参考

   发表时间:2009-03-02  
可是俺一窍不通啊
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics