我正在使用OSGi,Karaf 2.3.1,Hibernate 4.2.6.Final,容器管理的JPA和容器管理的JTA。 没有flush()我的代码不起作用。 但在flush()回滚后无效。
问题是:是否存在变通办法?
这里描述了4.2.2的问题Transactions with Hibernate in Apache Karaf / OSGi 切换到4.2.6没有帮助。
在重新发布的样本中我也可以看到flush() https://github.com/hibernate/hibernate-orm/blob/master/documentation/src/main/docbook/quickstart/tutorials/osgi/managed-jpa/src/main/java/org/hibernate/osgitest/DataPointServiceImpl.java
public void deleteAll() {
entityManager.createQuery( "delete from DataPoint" ).executeUpdate();
entityManager.flush();
}
谢谢。
我的详细配置:
Apache Karaf (2.3.1)
==== Hibernate Bundles
[ 179] [Active ] [ ] [ ] [ 80] jackson-datatype-hibernate4 (0)
[ 197] [Active ] [ ] [ ] [ 80] wrap_mvn_org.hibernate.javax.persistence_hibernate-jpa-2.0-api_1.0.1.Final (0)
[ 477] [Active ] [ ] [ ] [ 80] hibernate-commons-annotations (4.0.4.Final)
[ 478] [Active ] [ ] [ ] [ 80] hibernate-core (4.2.6.Final)
[ 479] [Active ] [ ] [ ] [ 80] hibernate-entitymanager (4.2.6.Final)
[ 480] [Active ] [Created ] [ ] [ 80] hibernate-envers (4.2.6.Final)
[ 481] [Active ] [ ] [ ] [ 80] hibernate-osgi (4.2.6.Final)
==== Aries Bundles
[ 8] [Active ] [Created ] [ ] [ 20] Apache Aries Blueprint Core (1.1.0)
[ 9] [Active ] [Created ] [ ] [ 20] Apache Aries Blueprint CM (1.0.1)
[ 11] [Active ] [ ] [ ] [ 20] Apache Aries Proxy Service (1.0.1)
[ 12] [Active ] [ ] [ ] [ 20] Apache Aries Util (1.1.0)
[ 13] [Active ] [ ] [ ] [ 20] Apache Aries Proxy API (1.0.0)
[ 14] [Active ] [ ] [ ] [ 20] Apache Aries Blueprint API (1.0.0)
[ 24] [Active ] [ ] [ ] [ 30] Apache Aries JMX API (1.1.0)
[ 28] [Active ] [ ] [ ] [ 30] Apache Aries JMX Core (1.1.1)
[ 36] [Active ] [ ] [ ] [ 30] Apache Aries JMX Blueprint Core (1.1.0)
[ 39] [Active ] [ ] [ ] [ 30] Apache Aries JMX Blueprint API (1.1.0)
[ 160] [Active ] [ ] [ ] [ 30] Aries JPA Container API (1.0.0)
[ 161] [Active ] [Created ] [ ] [ 30] Aries JPA Container blueprint integration for Aries blueprint (1.0.1)
[ 162] [Active ] [ ] [ ] [ 30] Aries JPA Container (1.0.0)
[ 163] [Active ] [ ] [ ] [ 30] Aries JPA Container Managed Contexts (1.0.1)
[ 164] [Active ] [ ] [ ] [ 30] Apache Aries JNDI API (1.0.0)
[ 165] [Active ] [ ] [ ] [ 30] Apache Aries JNDI Core (1.0.0)
[ 166] [Active ] [ ] [ ] [ 30] Apache Aries JNDI RMI Handler (1.0.0)
[ 167] [Active ] [ ] [ ] [ 30] Apache Aries JNDI URL Handler (1.0.0)
[ 168] [Active ] [ ] [ ] [ 30] Apache Aries JNDI Support for Legacy Runtimes (1.0.0)
[ 338] [Active ] [Created ] [ ] [ 30] Apache Aries Transaction Blueprint (1.0.0)
[ 339] [Active ] [ ] [ ] [ 30] Apache Aries Transaction Manager (1.0.1)
答案 0 :(得分:1)
升级到Hibernate 4.2.7,因为对于使用hibernate的事务有一些OSGi修复。