我正在使用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(),它仍然會刷新數據,儘管我強制它只讀? –