首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Grails可搜索的插件会在Hibernate AutoFlush上导致错误?

为什么Grails可搜索的插件会在Hibernate AutoFlush上导致错误?
EN

Stack Overflow用户
提问于 2011-03-18 14:41:25
回答 1查看 724关注 0票数 2

在我试图解决的砂砾 1.2.5项目中,我们使用Grails 可搜索插件 .5.5.1。

问题是,每当我们尝试索引大型集域类时,Grails总是抛出:

错误hibernate.AssertionFailure --出现断言错误(这可能表示Hibernate中有错误,但更有可能是由于不安全地使用会话) org.hibernate.AssertionFailure:集合域-类没有由org.hibernate.AssertionFailure()处理。

但是所涉及的域类已经被冬眠映射和使用了,除了调用可搜索的插件之外没有任何问题。

可搜索插件的使用如下:

  1. 使用compass.openSession()创建指南针会话
  2. 开始罗盘交易:compassSession.beginTransaction()
  3. 然后在一个重要的未索引域类上调用compassSession.create(result.get(0))
  4. 最后,调用compassTransaction.commit()来提交事务。
  5. Goto 2和处理下一个域类

在第3和第4个域类之间,会触发引发错误的自动刷新。

,有人能给我一些关于如何解决这个问题的提示吗?

以前有人遇到过这个问题吗?

我知道他们有一个searchable-plugin.这在.5前版本中有系统性的问题,难道这些问题还没有完全解决吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-21 14:10:01

这篇文章帮助我理解了这一点。您必须在具有脏对象的会话中执行一些Hibernate查询,并且它们在修改过程中得到flush()-ed。

有时,可以在发生任何修改之前将所有只读查询移出事务,并在withTransaction{}中进行修改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5353564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档