0

Glassfish jpa アプリを jboss に移植していますが、次のエラーが発生しています。

展開エラー: 展開 "persistence.unit:unitName=Avengers.war#AvengersPU" は、次の理由によりエラーになっています: org.hibernate.HibernateException: 'hibernate.dialect' must be set when no Connection available

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>
4

1 に答える 1

2

データベースの方言を persistence.xml に設定する必要があります。

<properties>
    <property name="hibernate.dialect" value="org.hibernate.dialect.DIALECT" />
</properties>

DIALECT を、hibernate がサポートするデータベースダイアレクトのリストからのダイアレクトに置き換えます。

于 2012-07-02T08:04:08.370 に答える