2012-08-14 41 views
1

如果我使控制器的域對象,不叫.save(),Grails將在某個時候會自動爲我做的。我正在創建大量域對象,而不打算保存所有這些對象,並在我的服務退出時獲取「引用未保存的瞬時實例」異常。獲取所有對象的列表Grails是打算奇蹟般地保存

我怎麼會拿到Grails將嘗試保存在控制器/服務退出,這樣我可以阻止其中一些被保存的所有對象的列表?

回答

3

您最好檢索您知道要編輯的實例,但不希望使用read方法而不是get。使用read不會使其成爲只讀,因爲如果您調用save()並且它已被修改,它將被保留,但在OSIV攔截器刷新會話時不會自動保留。

另一種選擇(尤其是如果該實例不單獨加載)是從使用detach()當你編輯它會刪除它。

你也可以使用的DTO和數據複製到這些非持久性類,所以你不持久化類,只是數據類,Hibernate並不知道搞混。

+0

我談論的對象我就與'新SomeDomainClass()',但隨後並沒有真正想要的。 – Mikey 2012-08-14 00:39:04

+0

此外,根據您的「使用的DTO」的評論,你可以看看我的問題:http://stackoverflow.com/questions/11918276/grails-can-i-use-domain-objects-when-i-dont-want-以保存任何東西 – Mikey 2012-08-14 00:39:43

+0

伯特,我覺得有時候我對你粗魯無禮,對熱情不夠。這與我的感受離不開。你搖滾,謝謝你回答我的許多問題。 – Mikey 2012-08-14 01:15:55