致电课程:
class ABC {
@Autowired
private Test test;
}
服务类。
@Service
@Transactional(readOnly=true)
class Test {
@Transactional(readOnly=false)
public boolean save() {
//do work
}
}
来自weblayer类ABC
我通过REST API调用test.save()。
这里在REST层中进行调用时没有现有的事务,理想情况下,当save()启动时,它应该启动readOnly = FALSE事务,但显然它正在采用readOnly = TRUE的类级事务定义,这是对的吗 ?什么是正确的行为?如何解决?
如果我将传播作为REQUIRES_NEW进行save(),它会解决我的问题吗?
低于例外:
Caused by: java.lang.UnsupportedOperationException: Can't write to a readonly object
at org.hibernate.cache.ehcache.internal.strategy.ReadOnlyEhcacheEntityRegionAccessStrategy.update(ReadOnlyEhcacheEntityRegionAccessStrategy.java:115)
at <...etc...>