spring-transactions相关内容
我已经使用 Spring AOP 将我的 Spring + Hibernate 项目配置为事务性的. 当我使用 TransactionSynchronizationManager.isActualTransactionActive() 检查 DAO 方法时,它显示为 true. 我正在从我的服务类调用两个 DAO 方法,在第二个 DAO 方法中,我故意执行 'devide by zer
..
我对 Spring 事务管理感到困惑.在我的应用程序中,我在服务类中使用 @Transactional 实现了事务管理.我配置我的 spring.xml 就像:
..
@Transactional 是否在 spring 3 中替代 AOP.它们相同吗?我可以说@Transactional 在内部实现 AOP 吗? 解决方案 @Transactionnal 注释只是一种简单的方式来声明一个方法(或一个类的所有方法)都是事务性的. Spring Framework 将使用 AOP 代理来拦截对方法的调用并管理事务. 所以,我们可以说 @Trans
..
原始问题概要: 使用带有 AOP 代理的标准 Spring 事务,不可能从同一类中的非 @Transactional-marked 方法调用 @Transactional-marked 方法,并且在交易中(特别是由于上述代理).这在 AspectJ 模式下使用 Spring Transactions 应该是可能的,但它是如何完成的? 编辑:在 AspectJ 模式下使用 Load-Time
..
我已经开始使用Spring的@Transactional注解,它为管理事务提供了很多便利.然而,在我们的代码中使用这个注解现在让我们依赖于 Spring.我知道 JPA 类型的东西有一个 javax persistence 包,我们在其中可以用 JPA 注释来标记各种代码,但由于它们都来自 javax.persistence,我们的代码不依赖于任何特定的实现或 ORM. 我想我的问题是是否有
..
对于每个客户端,我有单独的数据库,但每个客户端的业务逻辑和表都是相同的.我想要每个客户端的公共服务和 dao 层.在 dao 中,我根据登录的用户客户端选择数据源.在 @Transactional 中,我必须传递事务管理器的 bean id.如何使用@Transactional注解制作公共服务层. 同样的问题在这里 多个事务管理器 - 在运行时 - Spring 在运行时选择多个
..
我正在使用 Spring 在我的应用程序中配置事务.我为两个 RabbitMQ 服务器定义了两个事务管理器. ....@Bean(name = "devtxManager")公共 PlatformTransactionManager devtxManager() {返回新的 RabbitTransactionManager(devConnectionFactory());}@Bean(name
..
在我的一个服务类中,我注释了一些方法: @Transactional(value="foodb")公共栏 getMeSomething(){} 我最近通过 Spring EL 的强大功能了解了 @Value 来获取存储在属性文件中的一些值.比如 @Value("${my.db.name}") 这就像一个魅力. 现在我正在尝试做同样的事情 @Transactional(value="
..
spring 回滚事务除了@Transactional 注释之外还有什么选择.我已经使用了这个注释,但我想要我可以在 catch 块中回滚事务的方式.有什么办法吗? 提前谢谢. 解决方案 这是一个草稿: public class SomeService 实现 SomeInterface {private SomeDao thisDaoWrapsJdbcTemplate;私有 Pla
..
我使用的是 Spring 2.5 事务管理并且我有以下设置: Bean1 @Transactional(noRollbackFor = { Exception.class })公共无效执行(){尝试 {bean2.execute();} 捕获(异常 e){//在数据库中持久化失败(所以事务不应该失败)//异常不会重新抛出}} Bean2 @Transactional公共无效执行(){/
..
我使用注解来标记应该在事务中执行的方法. 但是,在一个地方我需要手动执行 transactionManager.rollback(),没有注释.如何获取 transactionManager 对象? 解决方案 如果要回滚当前事务,可以使用 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
..
有各种交易传播,比如 REQUIRED - 这是 DML 操作的情况. SUPPORTS - 这是查询数据库的情况. 强制性 - ?REQUIRES_NEW - ?不支持 - ?绝不 - ?嵌套 - ? 这些交易传播有哪些现实生活场景?为什么这些非常适合这种情况? 解决方案 用法多种多样,没有简单的答案,但我会尽量解释得最清楚 MANDATORY(期望交易):通常用于
..
我最近在一篇教程中读到 Spring 在事务提交后关闭连接. 这是真的吗?我在 Spring 参考文档中找不到任何相关信息. 背后的原理是什么?从现在开始,我认为连接和事务之间存在一对多的关系. 解决方案 Spring 会在事务完成时调用 close(),这可能来自提交或回滚.close() 是否真正关闭真正的 JDBC 连接取决于 DataSource 配置.如果它是一个普通
..
我想将 kafka 事务与存储库事务同步: @Transactional公共无效同步交易(){myRepository.save(someObject)kafkaTemplate.send(someEvent)} 自合并(https://github.com/spring-projects/spring-kafka/issues/373) 并且根据文档这是可能的.尽管如此,我在理解和实现该功能
..
我正在尝试使用来自服务层调用的 jdbc 模板来实现 Spring @transactionalDAOImpl 中的 2 个插入方法并使用 simplejdbctemplate 插入,我在日志中看到 spring 在我的服务方法上创建了一个新事务,我的第一个插入成功,第二个插入失败,即使它说它正在回滚相同连接第一次插入永远不会从我的 Mysql 数据库回滚.(我使用的是 innodb 引擎).
..
我正在开发一个应用程序,其中我必须根据从客户端传递的客户 ID 连接到不同的数据库.所有数据库的架构都是相同的.它是一种多租户应用程序.由于我不知道会有多少客户,我无法使用xml配置来静态创建数据源,因此我必须手动创建数据源. 我们使用 Spring JdbcTemplate 连接到数据库,连接参数来自另一个保存应用程序配置的数据库.我能够正确连接到数据库,但方法调用没有在事务中发生.以下是
..
我正在使用 Spring Boot 应用程序,我正在尝试实现事务管理.但是 Spring 不会回滚以相同方法保存的数据. 代码库:https://github.com/vinothr/spring-boot-交易示例 有人可以帮我吗? 这是我用于“测试"实体的存储库类. @Repository公共接口 TestRepository 扩展了 CrudRepository{} 我
..
当我在使用 spring 服务并且想通过 spring 存储库更新多个数据库表时,是否需要添加 @Transactional 以确保我是事务性和回滚的,还是已经存在?如果是,我是否需要将其添加到类级别或方法中? 解决方案 答案是肯定的,需要单独添加.更多详情请参考: 定义@有什么区别类与方法的事务性 和 Spring - @Transactional - 后台会发生什
..
我正在试用 Kotlin 的 Arrow 库 Either 对象来处理项目中的异常. 到目前为止,我对它的体验还不错,但我正在努力寻找一种方法来处理 Either 的事务 - 特别是回滚.在 Spring 中抛出 RuntimeException 是导致事务回滚的可靠方法.但是,通过使用 Either 不会抛出异常,因此不会触发回滚. 您可以将此视为一个多方面的问题: Eithe
..
当数据更新时,我需要通过 JMS 将通知事件发布到外部系统.我希望在将对象提交到数据库以确保完整性的同一事务中完成此操作. spring-data-rest 发出的 ApplicationLifecycle 事件似乎是实现此逻辑的合乎逻辑的地方. @org.springframework.transaction.annotation.Transactional公共类 TestEventLi
..