2014-06-04 52 views
0

我正被一個GORM TransientObjectException

org.hibernate.TransientObjectException 

使用Grails 2.3.9和Grails Hibernate 3的插件困擾3.6.10.15

這裏的具體問題:

我有一個名爲域類鉛筆和一個領域類與多對多揹包關係:

Pencil{ 
    PencilType type 
    Location location 
    Date creationDate 
    String description 
    int position 
    boolean active 

    static hasMany = [backpacks: BackPack] 
    static belongTo = [backpacks: BackPack] 

    static constraints = { .... all nullable ..... } 
} 

BackPack{ 
    Color color 
    int size 

    static hasMany = [pencils: Pencil] 
    static belongsTo = [pencils: Pencil] 

    static constraints = { .... all nullable ..... } 
    } 

如果我創建並保存鉛筆,我無法保存沒有得到:

org.hibernate.TransientObject Exception 
Message: object references an unsaved transient instance - save the transient instance before flushing: Pencil 

創建一個空白的鉛筆對象時,會出現這種情況。

new Pencil().save() 

--UPDATE-- **發生問題同時使用Hibernate3中和Hibernate4 Grails的插件。

回答

0

請嘗試確保您已正確劃分了與@TransactionalwithTransaction之間的交易邊界以進行寫入操作。

+0

在我正在保存的服務中,我有static transactional = true,我只是使用@Transactional註釋進行了測試,它仍然會引發暫時實例異常。我把Grails從2.3.9壓縮到2.2.5,並且節省了很多。 –

+0

此外,我試圖升級到休眠4,以確保它不是休眠3錯誤或什麼的。但是,使用hibernate4時出現錯誤。我已經提出了有關該問題的另一個問題:http://stackoverflow.com/questions/24050291/grails-hibernate4-upgrade –