问题标签 [spring-transactions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
581 浏览

spring-transactions - 我可以将@transactional 属性注入注解吗?

我有在 Spring 上下文文件中定义的服务,我们正在使用 EL 注入事务属性:

我有一些使用@Service注释定义的服务。是否可以注入类似于我们在 xml 文件中执行的方式的属性,语法是什么?IE:

0 投票
3 回答
517 浏览

mysql - Spring Transactions with Hibernate 和 SQL 最佳实践

我们目前正在使用 Spring MVC 来实现 REST Web 服务。我们现在想要实现某种数据持久性,我正在研究有哪些选项。Spring Transactions + Hibernate + MySQL 似乎是一种非常流行的方法,但我看过的每一个博客/教程都有不同的做法。

任何人都可以指导我使用 Spring 进行数据持久性的“最佳实践”吗?我想让它基于注释,因为这对我来说似乎更自然和可维护。

但现在在某些地方我已经读过不HibernateTemplate应该再使用了。有些人使用*Dao接口和*DaoImpl with @Repositoryapproach,而另一些人使用*Service with @Serviceapproach。

提前感谢您的任何建议。

0 投票
1 回答
924 浏览

hibernate - 动态更改会话工厂和 Txm 管理器以支持 I18N

在我们正在构建的 Spring-GWT 应用程序中,我有一个特殊的问题。我们有一个以不支持 UTF-8 的 WE8ISO8859P1 字符集编码的 Oracle DB。因此,我们正在 AL32UTF8 char set 中构建一个新数据库。不幸的是,DBA 不想将现有数据库迁移到新数据库,我们必须使用旧数据库获取英语数据,使用新数据库获取拉丁语数据。

我们在方法/类级别有 @Transactional 注释,并且 sessionFactory 被注入到 DAO 以连接到休眠。当用户选择拉丁语时,我想重用这些

@Transactional(动态更改)

即,当用户在拉丁语/英语之间切换时,注入的 TransactionManager 和 SessionFactory 应该通过 Ajax 调用动态更改。

这可以做到吗?解决此问题的最佳方法是什么?

再想一想,我可以通过制作 bean ApplicationContextAware 并在 dao 中设置它来获得拉丁会话工厂,但这是一个好方法吗?我该如何处理 TransactionManager ?

谢谢,

0 投票
2 回答
3043 浏览

java - 如何使用spring aop定义在循环内调用的回滚事务?

以前我在 com.TestTransaction 类中创建了一个方法 updateRecord() 。updateRecord() 方法有一个用于将值插入数据库的 for 循环。如果循环内抛出任何异常,所有插入的值都将回滚。这工作正常,代码如下:

在java类文件里面

内部 config.xml 文件(Spring 配置文件)

然后我决定在 updateRecord() 方法的循环中编写代码作为单独的方法 doUpdateRecord()。这样当 doUpdateRecord() 抛出 RuntimeException 时,它只会回滚这个 doUpdateRecord() 并且所有之前的更新都会被提交。但它似乎无法回滚。

代码如下:

弹簧配置文件:

任何人都可以对正在发生的事情给出任何想法吗?在循环内调用方法(事务)时是否可以回滚一次更新?

0 投票
1 回答
221 浏览

spring - 可以通过Java反射在Spring中更改Annotated Tractional属性吗?

我想通过反射在运行时更改 Transaction 属性(尤其是 TransactionManager )。这可能吗?

例如:@Transactional('ChangeMe')

0 投票
0 回答
692 浏览

spring - struts2 和 spring 事务

我有一个用 struts2 和 spring 和 JPA 在休眠状态下编写的应用程序。形成弹簧我使用事务和 IoC。
我的应用程序分为 2 层:Struts Actions 和一些处理 CRUD 操作的“服务”类,用 @Transactional 注释的类。
如果在其中一个服务类方法中发生异常,我必须从此类(到 struts 操作级别)抛出该异常,以便 Spring 自动回滚事务,对吗?

否则会发生什么(如果不抛出该异常并且事务永远不会回滚)?

PS。我使用 spring 管理的 EntityManager 进行所有数据库操作。

谢谢

0 投票
1 回答
3361 浏览

spring - 使用带有 tx:annotation-driven 的自定义 AnnotationTransactionAttributeSource

我需要使用自定义 AnnotationTransactionAttributeSource 来拦截事务属性。现在,我使用 TransactionInterceptor 执行此操作并将其注入 TransactionAttributeSourceAdvisor 。代理是使用 DefaultAdvisorAutoProxyCreator 创建的,如下所示。

在这里,CustomAnnotationTransactionAttributeSource 扩展了 AnnotationTransactionAttributeSource。有什么办法可以强制 Tx:annotation-driven 使用我的 CustomAnnotationTransactionAttributeSource 以便我可以避免所有这些配置?. 我在其中一篇文章中读到,这可以通过使用 BeanPostProcessors 来完成,但不确定如何在这种情况下使用它。

0 投票
0 回答
230 浏览

spring-mvc - 基于注释的事务管理器可以像在 jsp 上一样持久化数据吗

我是 Spring 3 事务管理的新手。我参考了谷歌的一些资源,我理解为什么以及如何在应用程序中使用它,但我想知道事务方法是否抛出错误是否有助于将数据保留在 jsp 页面上在jsp提交期间?

0 投票
1 回答
1342 浏览

spring - 我们可以使用 AOP 简化程序化事务管理吗?

我想根据一些输入标准设置事务管理器,因此我从声明性转移到程序化事务管理。

就像是

一切正常,但是用事务回调包装每个服务调用(我们的事务边界在 GWT 客户端服务级别。像 UI--> 客户端服务--> 服务--> Dao 之类的东西)与事务回调相比使代码有点混乱到 @Transactional 。有没有更简单的方法可以做到这一点?也许是基于 AOP 的方法?

我尝试了以下

代码在事务上下文中运行良好,“结果”包含正确的值(新保存的用户),但 saveUser 方法的调用者(GWT Widget 层)总是得到一个空对象。这不是 GWT 的问题,因为我也独立于 GWT 尝试过它。在“结果”之前,一切似乎都很好。在此之后,对象丢失。该问题的可能原因和解决方案是什么?

0 投票
1 回答
18632 浏览

hibernate - 春季交易:交易不活跃

我使用 struts2、spring 3.1、Jpa2 和 Hibernate 开发了一个应用程序。从 Spring 我使用事务和 IoC。
所以,我有一个 ajax 代码块,它每秒调用一次 struts2 操作(这发生在每个登录到应用程序的用户身上(同时用户一次大约有 20-30 个))。这个动作名称是 PopupAction

}

然后我有服务类:

}

这是弹簧配置:

我有事务管理器的名称,因为我有 3 个数据源和 3 个事务管理器。问题是我的 glassfish 日志充满了这样的消息: -- 删除以便能够添加更多最近的日志 --

所以原因是: 引起:java.lang.IllegalStateException:事务不活跃。但我不知道是什么原因造成的。
有什么帮助吗?
感谢
更新
所以我在@Transactional 注释中添加了他必须使用的事务管理器名称,但这仍然没有解决我的问题。从创建事务到出现异常,我已经捕获了一个日志:

再说一次......有什么想法吗?