我有一个测试,当我使用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>使用常规JBoss 7.1安装中定义的标准数据源,我得到以下异常:
Caused by: javax.persistence.TransactionRequiredException: JBAS011469: Transaction is required to perform this operation (either use a transaction or extended persistence context)谷歌帮不上什么忙。我更喜欢使用H2进行测试,只是为了加快测试过程。
提前感谢你的帮助,
发布于 2013-01-21 17:30:34
回答问题以便将其关闭。
事实证明,关于事务的错误消息是在转移注意力。该错误是由于MySQL和H2处理查询中区分大小写的方式不同造成的。
将查询更新为区分大小写解决了此问题。
https://stackoverflow.com/questions/13047645
复制相似问题