为什么使用'readOnly'进行交易保存记录

时间:2014-02-04 12:32:35

标签: java transactions

我有方法:

@Transactional(readOnly = true)
public List<Person> getPersonList(Form form) {
    return personDao.listCustom(form);
}

personDao是与PersonInceptor拦截的。这个拦截器保存请求:

public Odpoved logRequest(Request request) {
    return requestDao.insert(request);
}

我的问题是为什么这个例子有效并且不抛出异常

1 个答案:

答案 0 :(得分:0)

readOnly=true是ORM框架的一个提示,以优化数据访问,而不是写入的障碍。您可以从http://docs.spring.io/spring/docs/3.0.x/api/org/springframework/transaction/annotation/Transactional.html

中阅读
  

readOnly的

     

public abstract boolean readOnly如果事务是只读的,则为true。   默认为false。 这只是对实际情况的暗示   交易子系统;它不一定会导致写入失败   访问尝试次数。一个无法解释的事务管理器   当被要求提供只读时,只读提示不会引发异常   事务。

     

另见:TransactionDefinition.isReadOnly()默认值:false