【java-@Transactional注释是否避免并发访问业务层方法】教程文章相关的互联网学习教程文章

java – Spring启动测试@Transactional不保存【代码】

我试图使用Spring Boot Test进行简单的集成测试,以测试e2e用例.我的测试不起作用,因为我无法使存储库保存数据,我认为我有弹簧上下文的问题… 这是我的实体:@Entity @Getter @Setter @NoArgsConstructor @AllArgsConstructor public class Person {@Idprivate int id;private String name; }这是Person存储库:@Repository public interface PersonRepository extends JpaRepository<Person, Integer> { }人员服务:@Service publi...

java – 从服务类中调用时,Spring @Transactional不适用于带注释的方法【代码】

在下面的代码中,当从methodOuter中调用methodInner()时,应该在事务边界下.但事实并非如此.但是当直接从MyController类调用methodInner()时,它受到事务的约束.有什么解释吗? 这是控制器类.@Controller public class MyController {@Autowired@Qualifier("abcService")private MyService serviceObj;public void anymethod() {// below call cause exception from methodInner as no transaction exists serviceObj.methodOuter();...

java – 在@Transactional上下文中在@RestController中执行的Hibernate Query【代码】

我正在Spring Boot 2.0中编写一个应用程序,并且我有一个实体JPA的响应映射了嵌套对象依赖项. 我加载了一个返回到@RestController并包含在响应服务中的实体. 我注意到当对象在控制器中时(在事务边界之外)由hibernate执行查询以获取嵌套对象(Lazy defined object reference) 怎么可能呢?解决方法:在spring boot中,默认情况下启用View中的Open Session. 你必须在application.properties中禁用它 spring.jpa.open式视=假 因为jackson也...

99%的Java程序员都不知道的Spring中的@Transactional注解的坑【图】

??在我们开发中很多时候都要用到事务,例如转账、充值等等的操作,这些我就不多BB了,于是很多人就选择最简单的方式@Transactional注解,但是你真的测试过事务异常的时候会回滚吗?等生产环境遇到了在来查找原因那就晚了,下面就说一下该注解的一下坑吧。Transactional常见的几种失效原因没有配置事务管理器。配置方式如下:同一个类中,?一个未标注@Transactional的方法去调用标有@Transactional的方法,?事务会失效。该注解只能应用...

java – 当添加global-method-security命名空间时,Spring没有看到@Transactional【代码】

我创建了一个负责通过dao与数据库联系的服务.我使用@Transactional注释来处理事务.@Service("aclService") public class HibernateAclServiceImpl implements HibernateAclService{private final Log logger = LogFactory.getLog(HibernateAclServiceImpl.class); @Autowired private AclObjectIdentityDao objectIdentityDao ; private PermissionFactory permissionFactory = new DefaultPermissionFactory(); @Autowired privat...

java – Spring Transactional TimeOut【代码】

我正在尝试使用spring @Transactional注释和超时参数.我基本上用一些Thread.sleep()代码来测试代码.然后我按照预期得到超时异常.此外,我想在数据库操作花费的时间超过我的超时时间时获得超时异常.我使用for update select语句在数据库的表中锁定记录.我尝试更新该记录.但程序等待,什么也不做.这是我的示例代码.@Transactional(rollbackFor = Exception.class, timeout=5) public void executeService(List<sendData> list) throws ...

java – 将@Transactional与JOOQ一起使用【代码】

我正在尝试JOOQ,我首先想到的是运行一个将自动回滚的事务单元测试.我似乎没有让它工作,我不知道从这里去哪里.日志显示事务已启动并回滚.但是更改仍然会提交到数据库. 如何使Spring中的事务与JOOQ正常工作?2013-11-04 23:41:14,353 [main] DEBUG DataSourceTransactionManager: Creating new transaction with name [insertPersons]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT; '' 2013-11-04 23:41:14,369 [main] DEBUG DataSource...

java – 为什么Spring的@Transactional在没有代理的情况下工作?【代码】

我对Spring的@Transactional如何在内部工作感兴趣,但在我读到它的每个地方都有一个代理概念.代理应该是自动装配代替真正的bean,并使用额外的事务处理方法“装饰”基本方法.这个理论对我来说非常清楚,并且非常有意义,因此我尝试检查它的运作方式.我创建了一个带有基本控制器和服务层的Spring Boot应用程序,并使用@Transactional注释标记了一个方法.服务看起来像这样:public class TestService implements ITestService {@Persisten...

java – 多个实例并行命中@Transactional注释方法时会发生什么?【代码】

如果我错了,请纠正我. 我遇到的问题是我的交易没有保存到数据库中,并且正在进行某种竞争,这会使数据搞砸.该应用程序由多个实例并行命中.我使用了@Transactional,我知道这是与数据库进行的事务,并且在方法返回时提交事务. 问题是,通过多个实例击中它是否仍然保持每个命中事件的这一个事务,或者它不处理这种情况,数据会因赛车而搞砸? 可以针对给定条件建议解决方案吗?解决方法:@Transactional与同步无关.它只是确保您的流程成功或失...

并发 - 相关标签