Hibernate H2、JPA2、JBoss AS 7和事务

Hibernate H2、JPA2、JBoss AS 7和事务,hibernate,jpa-2.0,jboss7.x,h2,Hibernate,Jpa 2.0,Jboss7.x,H2,当我使用MySQL后端时,我有一个运行非常好的测试 persistence.xml: <persistence-unit name="pu"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:jboss/datasources/mysqlTM</jta-data-source> <proper

当我使用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进行测试,只是为了加快测试过程


提前感谢您提供的任何帮助,

回答问题,以便可以关闭

事实证明,与事务相关的错误消息是一种误导。该错误是由于MySQL和H2处理查询中区分大小写的方式不同而导致的


将查询更新为区分大小写解决了此问题

能否发布导致异常的代码,包括用于获取EntityManager的行?。顺便说一句-您不需要H2持久化单元中的
提供者
方言
属性。@kostja您引导我走上了正确的道路。与seam安全性相关的代码,我想创建一个简单的测试用例,即使注入seam事务管理器,它也能工作。然后我意识到这是因为MySQL和H2处理查询中区分大小写的方式不同。谢谢-D
    <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>
Caused by: javax.persistence.TransactionRequiredException: JBAS011469: Transaction is required to perform this operation (either use a transaction or extended persistence context)