当前位置: 首页 > 知识库问答 >
问题:

为什么回滚不能与hibernate/osgi/karaf/JPA/mysql一起工作

严正初
2023-03-14

我正在使用karaf 3.0.3和以下Hibernate捆绑包:

161|活动|80|;4.2.12.Final|hibernate core
162124活动#80 1244.1.12.Final124Hibernate entitymanager
172| 124活动80#4.2-12.fin

通过这种设置,我无法让事务回滚正常工作,尽管我可以将完全相同的组件(JPA DAO、服务层等)部署为独立的Spring应用程序,并且我看到回滚正确执行。

当试图让事务在OSGI/hibernate中成功工作时,会遇到什么问题?

  • 这与跨捆绑交易有关吗?(我的DAO和服务层在单独的捆绑包中)

如果我在这里没有得到回复,我将更新更具体的信息,但首先我想看看这是否是OSGi/hibernate/jpa的常见问题。

在user2007829的评论之后编辑:DAO扩展了Spring的JpaRepository,并且服务层方法用Spring的@Transactional进行了注释。我相信在此设置中,自动提交应该隐式关闭,并且独立的spring应用程序设置按预期工作。这是错的吗?

在OSGI的情况下,持久性单元XML文件应该有什么不同?现在唯一的区别是,在karaf的情况下,事务类型是JTA,我有一个这样的声明:

<jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/‌​my-datasource)</jta-data-source>

共有2个答案

夏理
2023-03-14

如何使用Hibernate?您是创建事务并在其中工作,还是与查询会话相关?另外,您是否将自动提交设置为 false?

宋洲
2023-03-14

发生这种情况有许多可能的原因。例如,您的数据源可能没有正确包装XADataSource。在这种情况下,可能会出现EntityManager没有加入事务或者没有登记为XA ressource的情况。

看看这些教程。从工作基础开始更容易:http://www.liquid-reality.de/x/LYBk·http://www.liquid-reality.de/x/C4DK

不幸的是,教程是基于蓝图和ary jpa的,所以它不完全是Spring。您仍然应该能够使用一些信息。此外,我只能建议从Spring切换到蓝图,因为Spring不再支持OSGi。

对于蓝图,有一些阿帕奇aries,教程基于这些阿帕奇aries或eclipse gemini。

 类似资料:
  • 我们正在开发一套模块(希望)部署在Apache Karaf中。每个模块都有一个分层结构,从域JPA实体/DAO、服务、Web组件等开始,其中每一层都变成了不同的OSGi包。 JPA实体扩展了一些属于公共包的抽象超类型。问题来了.. 当学习卡拉夫和OSGi的方法时,OpenJPA被“宣传”了很多,所以我们首先尝试了一下。编译时增强是一场灾难,完全是浪费时间,因为我们的实体层次结构跨越了多个包(jar

  • 我在试着为Spock中的控制器写一个测试。 应用程序类只是Spring Boot最简单的配置(支持自动扫描)。它提供了一个with PasswordEncryptor。我想用提供模拟的bean替换应用程序中的这个bean。 没有注释,所以Spring不知道应该注入哪个bean。不幸的是,我不知道如何让Spring通过本地配置从应用程序中替换bean。

  • 当在嵌入了tomcat的spring boot中运行代码时,Spring cloud consul可以像预期的那样工作。 当我们在独立的tomcat上部署代码时,它不起作用。似乎有一个Web服务器上启动领事服务注册。仅当我们在带有嵌入式 tomcat 的Spring启动内运行代码时,才会触发此事件。 https://github.com/spring-cloud/spring-cloud-cons

  • 我试图使用Maven将Hibernate添加为我的OSGi包的依赖项。在我的POM文件中,我有: 但是,当我运行时,我得到了一个错误: 组织。奥斯基。框架BundleException:捆绑组织中未解决的约束。冬眠核心[8]:无法解决8.0:缺少要求[8.0]osgi。装电线。包裹( 所以我为javax添加了另一个依赖项。企业背景: 解决了之前的错误,但导致了另一个错误: 自动属性安装:file:

  • css在中不工作,但使用此css代码。我在css区域和html标记中首先编写,然后编写。为什么? CSS HTML

  • 我正在启动一个基于Stephan Zerhusen出色的SpringBoot JWT演示的项目。它在我的SpringToolSuite项目中安装并运行良好。我对它的进一步开发遇到了问题。 我想将Stephan的代码(org.zerhusen)与我的业务逻辑(com.mypackage)分开。我尝试过的@SpringBootApplication和@ComponentScan配置都不适用于我。 Sp