在我试图解决的砂砾 1.2.5项目中,我们使用Grails 可搜索插件 .5.5.1。
问题是,每当我们尝试索引大型集域类时,Grails总是抛出:
错误hibernate.AssertionFailure --出现断言错误(这可能表示Hibernate中有错误,但更有可能是由于不安全地使用会话) org.hibernate.AssertionFailure:集合域-类没有由org.hibernate.AssertionFailure()处理。
但是所涉及的域类已经被冬眠映射和使用了,除了调用可搜索的插件之外没有任何问题。
可搜索插件的使用如下:
compass.openSession()创建指南针会话compassSession.beginTransaction()compassSession.create(result.get(0))。compassTransaction.commit()来提交事务。在第3和第4个域类之间,会触发引发错误的自动刷新。
,有人能给我一些关于如何解决这个问题的提示吗?
以前有人遇到过这个问题吗?
我知道他们有一个searchable-plugin.的这在.5前版本中有系统性的问题,难道这些问题还没有完全解决吗?
发布于 2011-03-21 14:10:01
这篇文章帮助我理解了这一点。您必须在具有脏对象的会话中执行一些Hibernate查询,并且它们在修改过程中得到flush()-ed。
有时,可以在发生任何修改之前将所有只读查询移出事务,并在withTransaction{}中进行修改。
https://stackoverflow.com/questions/5353564
复制相似问题