我正在将一个glassfish jpa应用程序移植到jboss并遇到此错误:
部署错误: 由于以下原因,部署“persistence.unit:unitName = Avengers.war#AvengersPU”出错:org.hiberna te.HibernateException:当没有可用的连接时,必须设置'hibernate.dialect'
可以使用jboss管理控制台成功测试连接,我可以手动登录我的数据库,所以我对此错误消息感到困惑。有人可以建议我错过配置吗?
这是我的 mysql-ds.xml 文件:
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/thor_ds</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/thor</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>apple</user-name>
<password>apple</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
和我的 persistance.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="AvengersPU" transaction-type="JTA">
<!--<jta-data-source>jdbc/thor_ds</jta-data-source>-->
<jta-data-source>java:/jdbc/thor_ds</jta-data-source>
<class>avenger.Grouptable</class>
<class>avenger.MyUser</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
</properties>
</persistence-unit>
</persistence>
编辑:按照JMelnik的说明,我的配置属性标签现在有这个:
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
</properties>
答案 0 :(得分:2)
您应该在persistence.xml中设置数据库方言:
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.DIALECT" />
</properties>
中的方言替换DIALECT