我有一个带有调用另一个方法的方法的服务.在第一种方法中,我仅使用SELECT执行查询,但它们必须查看在第二种方法中完成的INSERTS和UPDATES.
然后,我必须处理交易.我正在使用Spring,因此可以使用@Transactional批注.
以下哪个选项似乎更适合您?
选项A
@Transactional
public void generate(){
// selects
save(a);
// more selects
}
@Transactional
public void save(Object a){
//save the object
}
选项B
public void generate(){
// selects
save(a);
// more selects
}
@Transactional
public void save(Object a){
//save the object
}
谢谢!!
解决方法:
理想情况应该是
@Transactional
public void generate(){
// selects
save(a);
// more selects
}
public void save(Object a){
//save the object
}
即将使用生成方法的事务.如果发生任何异常,您可以全部回滚.如果要覆盖行为.使用传播行为
例如.:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void save(Object a){
//save the object
}