gpt4 book ai didi

java - spring事务注释方法无需对实体进行合并调用

转载 作者:太空宇宙 更新时间:2023-11-04 14:13:03 24 4
gpt4 key购买 nike

我们使用的是spring roo,代码库中有一些方法用@Transactional注释。

例如,

class XService {
@Transactional
public Response doSomething(String email) {
User u = User.findByEmail(email);
u.setLastModified(Calendar.getInstance());
return new Response("OK");
}
}

请注意,在 setLastModified 之后不会调用 u.merge()。该方法完成后,用户表的lastModified列中的值应该是多少。

谢谢!

最佳答案

取决于:

  1. 调用XService.doSomthing的方法是否带有@Transactional注释,并且是否以RuntimeException结束。
  2. 默认事务传播行为配置。

默认情况下,如果您从 Controller 调用XService.doSomthing,则User实例应更新,因为u附加实例,并且方法不会引发运行时异常

看看this post我认为这可以向您解释有关 JPA 上事务行为的有趣信息。

祝你好运。

关于java - spring事务注释方法无需对实体进行合并调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com