Java 不带实体合并调用的spring事务注释方法
我们使用的是SpringRoo,代码库中有一些用@Transactional注释的方法 比如说,Java 不带实体合并调用的spring事务注释方法,java,spring,spring-roo,transactional,Java,Spring,Spring Roo,Transactional,我们使用的是SpringRoo,代码库中有一些用@Transactional注释的方法 比如说, class XService { @Transactional public Response doSomething(String email) { User u = User.findByEmail(email); u.setLastModified(Calendar.getInstance()); return new Respo
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列中的值应该是多少
谢谢 在哪里调用“u.merge()”
另一方面,Roo不会用@Transactional注释每个服务方法,而是在生成的ITD处注释整个服务。取决于:
XService.doSomthing
的方法被注释为@Transactional
或not,并以运行时异常
或not结束XService.doSomthing
,则用户实例应更新为u
是附加实例,并且方法不会引发运行时异常
看看我认为可以解释JPA交易行为的有趣信息
祝你好运。u.merge()根本不被调用。是的,这不是roo生成的方法。请考虑把你的答案作为一个评论,因为它不试图回答这个问题。谢谢