我正在使用Grails Web应用程序,并且在使用Grails服务时遇到了很多奇怪的事情。所以我想问一些关于这方面的问题,让我更多地了解Grails服务。这对我很有帮助(也许对其他人^ _ ^)。提前致谢。有关Grails服务的一些问题
如果服务被配置为与静态事务=真,将它冲洗任何方法之后的每一个数据变化到DB与对象是脏并且被锁定在休眠会话调用?
我可以在课程级别使用
@Transactional
注释而不是static transactional = true
吗?是否可以将@Transactional(readOnly = true)
放在我希望他们从DB读取(查询,查找)数据的某些方法中?交易继承如何?我的意思是,如果父服务配置为
static transactional = true
,并且子服务拥有它自己的@Transactional
注释(在类上)以及某些@Transactional(readOnly = true)
(在某些方法上),如果我从子对象调用父对象的方法会发生什么?是否与抽象服务进行交易?因为据我所知,在抽象服务中,我们无法初始化其bean,也可能在启动应用程序时,Grails上下文中存在一些差异。
太棒了!非常感谢你的明确答案。但让我们看看第3点的反面:父级服务A在类级别上标记@Annotation,并且A中的方法doParent()是readOnly = true,而子级服务B没有关于事务的任何特定配置。为什么我从B调用doParent(),它仍然会刷新数据,尽管我强制它只读? –