2017-04-11 60 views
0

要將用戶名「lastUpdatedBy」屬性(以及其他一些std屬性)添加到幾個域類中,我創建了一個特徵。一切工作正常的數據庫,但EhCache磁盤存儲在springSecurityService上提供了一個NotSerializableException。我有Grails 3在特性中使用springSecurityService?序列化錯誤 -

def springSecurityService 

爲了獲得principal.username。

有沒有辦法將服務指定爲瞬態(靜態瞬變= []似乎沒有幫助),還是我處於死衚衕?無論如何,引用域類中的服務有點不妥,但是在保存之前獲取用戶名的更好,可行的方法是什麼?

+1

你應該簡單地在你的域類中定義'transient springSecurityService' – injecteer

回答

0

好的,我明白了這一點。其中一個域類有一個複合鍵,因此被標記爲實現Serializable。一旦這被轉換來保持通常的id字段,並且「implements Serializable」被移除,問題就消失了。

0

只需將您的字段聲明爲臨時字段。

class MyDomain { 

    // other stuff omitted 

    transient SpringSecurityService springSecurityService 

} 

這將在序列化時完成這項工作。

相關問題