问题标签 [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.
spring-transactions - 我可以将@transactional 属性注入注解吗?
我有在 Spring 上下文文件中定义的服务,我们正在使用 EL 注入事务属性:
我有一些使用@Service
注释定义的服务。是否可以注入类似于我们在 xml 文件中执行的方式的属性,语法是什么?IE:
mysql - Spring Transactions with Hibernate 和 SQL 最佳实践
我们目前正在使用 Spring MVC 来实现 REST Web 服务。我们现在想要实现某种数据持久性,我正在研究有哪些选项。Spring Transactions + Hibernate + MySQL 似乎是一种非常流行的方法,但我看过的每一个博客/教程都有不同的做法。
任何人都可以指导我使用 Spring 进行数据持久性的“最佳实践”吗?我想让它基于注释,因为这对我来说似乎更自然和可维护。
但现在在某些地方我已经读过不HibernateTemplate
应该再使用了。有些人使用*Dao接口和*DaoImpl with @Repository
approach,而另一些人使用*Service with @Service
approach。
提前感谢您的任何建议。
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 ?
谢谢,
java - 如何使用spring aop定义在循环内调用的回滚事务?
以前我在 com.TestTransaction 类中创建了一个方法 updateRecord() 。updateRecord() 方法有一个用于将值插入数据库的 for 循环。如果循环内抛出任何异常,所有插入的值都将回滚。这工作正常,代码如下:
在java类文件里面
内部 config.xml 文件(Spring 配置文件)
然后我决定在 updateRecord() 方法的循环中编写代码作为单独的方法 doUpdateRecord()。这样当 doUpdateRecord() 抛出 RuntimeException 时,它只会回滚这个 doUpdateRecord() 并且所有之前的更新都会被提交。但它似乎无法回滚。
代码如下:
弹簧配置文件:
任何人都可以对正在发生的事情给出任何想法吗?在循环内调用方法(事务)时是否可以回滚一次更新?
spring - 可以通过Java反射在Spring中更改Annotated Tractional属性吗?
我想通过反射在运行时更改 Transaction 属性(尤其是 TransactionManager )。这可能吗?
例如:@Transactional('ChangeMe')
spring - struts2 和 spring 事务
我有一个用 struts2 和 spring 和 JPA 在休眠状态下编写的应用程序。形成弹簧我使用事务和 IoC。
我的应用程序分为 2 层:Struts Actions 和一些处理 CRUD 操作的“服务”类,用 @Transactional 注释的类。
如果在其中一个服务类方法中发生异常,我必须从此类(到 struts 操作级别)抛出该异常,以便 Spring 自动回滚事务,对吗?
否则会发生什么(如果不抛出该异常并且事务永远不会回滚)?
PS。我使用 spring 管理的 EntityManager 进行所有数据库操作。
谢谢
spring - 使用带有 tx:annotation-driven 的自定义 AnnotationTransactionAttributeSource
我需要使用自定义 AnnotationTransactionAttributeSource 来拦截事务属性。现在,我使用 TransactionInterceptor 执行此操作并将其注入 TransactionAttributeSourceAdvisor 。代理是使用 DefaultAdvisorAutoProxyCreator 创建的,如下所示。
在这里,CustomAnnotationTransactionAttributeSource 扩展了 AnnotationTransactionAttributeSource。有什么办法可以强制 Tx:annotation-driven 使用我的 CustomAnnotationTransactionAttributeSource 以便我可以避免所有这些配置?. 我在其中一篇文章中读到,这可以通过使用 BeanPostProcessors 来完成,但不确定如何在这种情况下使用它。
spring-mvc - 基于注释的事务管理器可以像在 jsp 上一样持久化数据吗
我是 Spring 3 事务管理的新手。我参考了谷歌的一些资源,我理解为什么以及如何在应用程序中使用它,但我想知道事务方法是否抛出错误是否有助于将数据保留在 jsp 页面上在jsp提交期间?
spring - 我们可以使用 AOP 简化程序化事务管理吗?
我想根据一些输入标准设置事务管理器,因此我从声明性转移到程序化事务管理。
就像是
一切正常,但是用事务回调包装每个服务调用(我们的事务边界在 GWT 客户端服务级别。像 UI--> 客户端服务--> 服务--> Dao 之类的东西)与事务回调相比使代码有点混乱到 @Transactional 。有没有更简单的方法可以做到这一点?也许是基于 AOP 的方法?
我尝试了以下
代码在事务上下文中运行良好,“结果”包含正确的值(新保存的用户),但 saveUser 方法的调用者(GWT Widget 层)总是得到一个空对象。这不是 GWT 的问题,因为我也独立于 GWT 尝试过它。在“结果”之前,一切似乎都很好。在此之后,对象丢失。该问题的可能原因和解决方案是什么?
hibernate - 春季交易:交易不活跃
我使用 struts2、spring 3.1、Jpa2 和 Hibernate 开发了一个应用程序。从 Spring 我使用事务和 IoC。
所以,我有一个 ajax 代码块,它每秒调用一次 struts2 操作(这发生在每个登录到应用程序的用户身上(同时用户一次大约有 20-30 个))。这个动作名称是 PopupAction
}
然后我有服务类:
}
这是弹簧配置:
我有事务管理器的名称,因为我有 3 个数据源和 3 个事务管理器。问题是我的 glassfish 日志充满了这样的消息: -- 删除以便能够添加更多最近的日志 --
所以原因是: 引起:java.lang.IllegalStateException:事务不活跃。但我不知道是什么原因造成的。
有什么帮助吗?
感谢
更新
所以我在@Transactional 注释中添加了他必须使用的事务管理器名称,但这仍然没有解决我的问题。从创建事务到出现异常,我已经捕获了一个日志:
再说一次......有什么想法吗?