代码之家  ›  专栏  ›  技术社区  ›  vicatcu

grails和mysql批处理

  •  1
  • vicatcu  · 技术社区  · 14 年前

    this great blog post for batch processing in grails with MySQL . 我遇到的问题是,在循环中包含对session.clear()的定期调用会导致org.hibernate.LazyInitializationException被抛出。在页面的评论部分有一段引语:

    你的第二点是 制造谎言是绝对正确的。如果 你在外面做其他事情 使用当前线程导入, 你要确保重新连接 之后会话的任何对象 你在清理。

    但我该怎么做呢?有人能帮我明确地理解如何“在我完成清除后将任何对象重新连接到会话吗?”?

    我还对并行化数据库插入过程感兴趣,这样我就可以利用多核处理器的优势。有人能提供关于如何在Grails中做到这一点的建议吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Ted Naleid    14 年前

    Grails有一些方法可以帮助实现这一点(它们利用了hibernate)。

    attach 方法重新连接。

    如果在对象被解除跟踪时对其进行了更改,则可以使用 merge .

    如果出于任何原因,您不确定某个对象是否附加到会话,则可以使用 link text 方法来确定它是否是。

    可能还需要查看有关的Hibernate文档 Session .