2009-07-20 12 views
1

我使用的Grails 1.1.1和我得到這個錯誤 集合[Person.companies]沒有被刷新()爲什麼在使用會話時,集合[Person.companies]未由flush()處理?

的配置方法如下處理: 人域有很多企業(公司域) 而公司屬於關聯人

然後在控制器我不喜歡此

def person = session.person ; 
def jobs = Job.findByPerson(person); 
jobs.currentSalary = new BigDecimal(params.currentSalary); 
... another code ... 

jobs.save(flush:true); 

它產生以下錯誤:集合[Person.companies]沒有被沖洗處理()

我想的第一行從

def person = session.person; 
to 
def person = Person.get(session.person.id); 

我在郵件列表上閱讀改變,有人說這涉及到搜索的插件,但我不使用的那一個。

和它的作品...

我的問題,爲什麼我不能使用包含相同的對象session.person。

感謝您

回答

0

我遇到了類似的問題時person.company被定義爲一個列表,而不是一個Set或SortedSet的。在我的情況下,我最終不得不更改公司的compareTo函數,以便SortedSet正常工作。這些JIRA 2986和4453之間似乎是一種奇怪的互動,我沒有時間理清。根問題涉及一些延遲加載的集合。

http://jira.codehaus.org/browse/GRAILS-4453 (只能發佈一個超鏈接)

1

嘗試更換:

def person = session.person; 

有:

def person = session.person.attach(); 
相關問題