草庐IT

事务处

全部标签

java - Spring 和 Hibernate 的事务管理使非 Activity 事务成为可能

我正在使用Spring和Hibernate管理一个JavaWeb应用程序。我使用Spring和Hibernate工具来处理持久性级别,因此我不需要提交\回滚我的事务。该应用程序是并发的,因此用户可以修改相同的记录,我决定使用ReadCommitted作为隔离级别。问题是有时我会在日志中发现JDBC错误,并且所有下一个请求都会出现相同的错误,从而阻止应用程序行为。这些是事务管理中涉及的组件:@BeanpublicSpringLocalSessionFactoryBeansessionFactory(DataSourcedataSource){SpringLocalSessionFacto

java - 让 DbUnit 与 Hibernate 事务一起工作

我在尝试将Hibernate事务中所做的更改推送到数据库以使DbUnit在我的测试用例中正常工作时遇到问题。似乎DbUnit没有看到Hibernate所做的更改,因为它们尚未在事务结束时提交......而且我不确定如何重组我的测试用例以使其正常工作。这是我过度简化的测试用例来证明我的问题:-@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:applicationContext-test.xml"})@TransactionConfiguration(transaction

java - Spring 管理事务、EclipseLink JPA、自定义隔离级别

我怀疑这个很尴尬,我做错了很糟糕,但请耐心等待。我有一个带有Spring管理的事务的Spring应用程序。它使用EclipseLinkJPA。我有一个执行findByNativeQuery()后跟merge()的方法。我需要在真正的串行事务隔离级别中发生这种情况。我尝试添加@Transactional(isolation=Isolation.SERIALIZABLE)这不起作用,因为org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect#beginTransaction不支持任何事务隔离级别,但默认。因此,我尝试进入Elcips

java - 无法为当前线程获取事务同步 session

从xml-转换为Java-Config的Spring4/Hibernate4项目出现以下异常。org.hibernate.HibernateException:Couldnotobtaintransaction-synchronizedSessionforcurrentthread该项目在Eclipse中启动时没有错误,但在第一次请求时出现异常。在我的ConfigRoot类中,我为DataSource、SessionFactory、HibernateTransactionManager配置了@Bean>,改进的命名策略。我所有的@Service服务都带有@Transactional注释

java - 被事务 : @console:Oracle (INTELLIJ CLIENT) 锁定

我正在使用IntelliJIDEA14.1.4,最近我们将数据库连接到客户端并且它工作正常,直到最近我们开始出现错误[2015-09-2810:12:55]lockedbytransaction:@console:Oracle->@localhost现在我们无法执行任何交易,因为我们不断收到相同的错误。我们尝试用谷歌搜索错误,但找不到任何解决问题的方法。任何帮助将不胜感激!!! 最佳答案 我在之前运行的查询失败后发生了这种情况——使用PyCharm,而不是IntelliJ,但它是同一个JetBrains系统。我没有打开自动提交。由于

java - 如何在 DDD 中管理域逻辑和事件之间的事务?

我正在研究DDD和事件源中的编程。我看到一个示例,当调用域逻辑(例如Order.placeOrder())时,它会发布一个事件(例如OrderPlaced)。并且该事件将作为事件存储发送到MQ。域逻辑(Order.placeOrder())应该是一个原子API,如果使用Spring作为事务管理器,它应该有@Transactional注释。现在我的问题是:如何确保数据库更改和事件发送在同一个事务中?即,如果在将数据提交到数据库时出现任何错误,则事件永远不会发送到MQ。我知道有像XA或2阶段提交这样的解决方案来强制数据库更新并在同一事务中发送MQ消息。但现在似乎并没有被广泛使用。如果还是用

java - Spring 中的事务原子性

SQL/Spring中的事务原子性是什么意思,什么不是?我正在考虑以下情况。如果我错了请纠正我:此代码不正确:@TransactionalpublicvoidvoteUp(longfooId){Foofoo=fooMapper.select(fooId);//SELECT*FROMfooWHEREfooId==#{fooId}foo.setVotes(foo.getVotes()+1);fooMapper.update(foo);//UPDATEfooSETvotes=#{votes}(...)WHEREfooId==#{fooId}}尽管它是事务性的,但如果在多台机器/多线程中同时调

java - JPA事务隔离和实体锁的区别

我已经阅读了有关事务隔离级别的内容。它用于防止并行事务执行错误。这很明显。还有可用于实体的锁定模式。我了解它们的工作原理。但是我找不到需要锁定的原因?我已经使用过事务隔离级别。为什么我必须使用锁定?隔离级别和锁定做同样的工作吗? 最佳答案 事务隔离和JPA实体锁都是并发控制机制。transactionisolation应用于JDBC连接级别,范围是事务生命周期本身(您不能更改与当前正在运行的事务的事务隔离)。现代数据库允许您同时使用2PL(two-phaselocking)隔离级别和MVCC那些(SNAPSHOT_ISOLATION

java - 是否有针对 Java 中的 XA 事务文件访问的开源解决方案?

是否可以在Java中对文件系统进行XA事务访问?我想在事务边界内操作文件,并且我的事务必须通过JTA参与分布式事务(所以我想文件系统需要作为XAResource进行访问)。我不需要支持细粒度的读/写文件访问;将每个文件视为记录足以满足我的需要。有没有人知道已经有这样做的开源项目?我不想实现这个烂摊子只是为了发现它已经完成了......我听到一些谣言说JBossTranscations将增加对此的支持(参见示例thisdiscussion),但找不到关于此的官方声明。顺便说一下,如果您需要事务性文件访问但不需要事务参与两阶段提交,我建议您看一下ApacheCommonsTransacti

java - JPA2+Hibernate 3.6.0 中的 JTA 或 LOCAL 事务?

我们正在重新考虑我们的技术堆栈,以下是我们的选择(由于应用程序的复杂性等原因,我们离不开Spring和Hibernate)。我们还从J2EE1.4迁移到JavaEE5。技术栈JavaEE5JPA2.0(我知道JavaEE5只支持JPA1.0但我们想使用Hibernate作为JPA提供者)Hibernate3.6.0(我们已经有了许多具有自定义类型的hbm文件等所以我们不想迁移他们此时转到JPA。这表示我们希望jpa/hbm映射都有效在一起,因此Hibernate作为JPA提供者而不是使用App自带的默认服务器)现在的问题是我想坚持使用本地事务,但其他团队成员想使用JTA。在过去的9年里