1

MySQLバックエンドを使用すると完全に実行されるテストがあります。

persistence.xml:

<persistence-unit name="pu">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:jboss/datasources/mysqlTM</jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        <property name="hibernate.cache.use_second_level_cache" value="true" />

        <!-- Properties for Hibernate -->
        <property name="hibernate.hbm2ddl.auto" value="create-drop" />
        <property name="hibernate.show_sql" value="true" />
    </properties>
</persistence-unit>

ただし、次のようにH2に切り替えると、次のようになります。

persistence.xml

    <persistence-unit name="pu">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
        <property name="hibernate.cache.use_second_level_cache" value="true" />

        <property name="hibernate.hbm2ddl.auto" value="create-drop" />
        <property name="hibernate.show_sql" value="true" />
    </properties>
</persistence-unit>

標準のJBoss7.1インストールで定義されている標準データソースを使用すると、次の例外が発生します。

Caused by: javax.persistence.TransactionRequiredException: JBAS011469: Transaction is required to perform this operation (either use a transaction or extended persistence context)

グーグルはほとんど役に立たなかった。テストプロセスをスピードアップするためだけに、テストにH2を使用したいと思います。

助けてくれてありがとう、

4

1 に答える 1

0

質問に答えて、閉じることができるようにします。

結局のところ、トランザクションに関するエラーメッセージは赤字です。このエラーは、MySQLとH2がクエリで大文字と小文字を区別する方法が異なるために発生しました。

大文字と小文字を区別するようにクエリを更新すると、問題が解決しました。

于 2013-01-21T09:30:33.930 に答える