我正在调试我们的webapp。它被配置为在启动时创建一个DataSourceTransactionManager
bean以及一个HibernateTransactionManager
bean。这不是故意的,而是由第三方依赖引起的。效果似乎是良性的。我通过调试看到的是,当我们通过基于Hibernate的DAO持久化对象时,将调用DataSourceTransactionManager而不是HibernateTransactionManager(两个bean都称为“
transactionManager”)。Spring Javadoc暗示(我认为,现在重新阅读)对本地资源来说很好-
这就是我们的情况。也就是说,它不是基于JTA的分布式环境。
我的问题是-
对基于ORM的持久性不使用HibernateTransactionManager是否有负面影响?我可以更改配置,以通过DAO上@Transactional批注上的限定符来使用HibernateTransactionManager。
在简单的单元测试,集成测试设置中,一切工作都很好,但是当我们有成千上万的用户和高度的并发性时,我更担心要扩展到完整的生产量。
TIA,希望不要太晦涩。
Spring 3.0.x BTW。
这是在Spring 3.1文档中。
第11.9节“常见问题的解决方案”。
根据您对事务技术和需求的选择,使用正确的PlatformTransactionManager实现。
这将使我感到错误,并会引起问题。如果没有hibernate的txn管理器,则对HibernateOperations的所有调用都将在事务外部并在单独的会话中进行,可能使用自动提交。因此,当发生错误时,一切似乎都很好,您可能会发现并没有希望回滚的更改。
尝试以下检查
检查“内容”是否出现在数据库中。
另一张支票是
您可能会发现最后一次调用会导致异常,因为会话没有从负载中保持打开状态,因为封闭的txn不受hibernatetxn管理器的管理。
问题内容: 可以使用hibernate作为Glassfish的持久性提供程序吗? 问题答案: 虽然我不是Glassfish或Hibernate的专家,但我认为您可能会发现这很有趣:在Glassfish中使用Hibernate的说明
我如何判断RDD[0]、RDD[1]和RDD[2]是重新计算的还是仅仅脱水的? 总的来说,通过查看工作历史记录,你如何判断rdd是重新计算的还是仅仅脱水的?
我使用springboot(2.1.9。RELEASE)和hibernate(5.4.6。最终)来开发程序,我需要懒加载一个字符串类型字段(更改日志),所以我使用了持久性属性截取表,字符串类型字段可以懒加载,但是ManyTo很多的连接表不起作用。这是代码 测试用例代码 运行测试用例后,数据被插入到类别和项目表中,但是joinTablecategory_items没有数据。如果项目不使用持久性属性属
我试图使用EJB 3.1、JPA 2.0、M2E-WTP和JSF 2.1技术在WebLogic12c服务器上运行我的webapp,但仍然出现以下错误: 这是触发异常的EJBBean 下面是persistence.xml文件,它位于eclipse构建的src/main/java-->META-INF下。 我花了几个小时在网上寻找答案,但没有结果。我不明白为什么我的persistence.xml中的持
问题内容: 我想知道如何禁用Redis的持久性。这里提到了这样做的可能性:http : //redis.io/topics/persistence。我的意思是和那里描述的完全一样。任何帮助将不胜感激! 问题答案: 要禁用Redis中的 所有 数据持久性,请执行以下操作: 通过将配置指令设置为(默认值)来禁用AOF 通过禁用(注释掉)所有配置指令来禁用RDB快照(默认情况下定义了3个) 这些配置指令
我在想如何禁用Redis的耐药性。这里提到了这样做的可能性:http://redis.io/topics/persistence。我的意思和那里描述的完全一样。任何帮助都将非常感谢!