Java 为什么使用会话时flush()未处理集合[Person.Companys]?

Java 为什么使用会话时flush()未处理集合[Person.Companys]?,java,grails,groovy,Java,Grails,Groovy,我使用的是Grails1.1.1,出现了这个错误 flush()未处理集合[个人公司] 配置如下: 个人域有许多公司(公司域) 而公司属于个人 然后在控制器中,我就这样做了 def person = session.person ; def jobs = Job.findByPerson(person); jobs.currentSalary = new BigDecimal(params.currentSalary); ... another code ... jobs.save(fl

我使用的是Grails1.1.1,出现了这个错误 flush()未处理集合[个人公司]

配置如下: 个人域有许多公司(公司域) 而公司属于个人

然后在控制器中,我就这样做了

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

jobs.save(flush:true);
它产生以下错误:flush()未处理集合[Person.Companys]

我试着把第一行从

def person = session.person;
to
def person = Person.get(session.person.id);
我在邮件列表上看到,有人说它与可搜索插件有关,但我没有使用那个插件

而且它是有效的

我的问题是,为什么不能使用包含相同对象的session.person


谢谢你

当person.company被定义为列表而不是集合或分类集时,我遇到了类似的问题。在我的例子中,我最终不得不将compareTo更改为Company的功能,以便SortedSet正常工作。这似乎是一个奇怪的互动,这些圣战2986和4453之间,我没有时间来整理。根本问题涉及集合的延迟加载


(只能发布一个超链接)

当person.company被定义为列表而不是集合或分类集时,我遇到了类似的问题。在我的例子中,我最终不得不将compareTo更改为Company的功能,以便SortedSet正常工作。这似乎是一个奇怪的互动,这些圣战2986和4453之间,我没有时间来整理。根本问题涉及集合的延迟加载

(只能发布一个超链接)

尝试替换:

def person = session.person;
与:

尝试替换:

def person = session.person;
与: