gpt4 book ai didi

session - org.hibernate.HibernateException 消息重新关联的对象有脏集合

转载 作者:行者123 更新时间:2023-12-02 14:42:19 29 4
gpt4 key购买 nike

我有一个执行以下步骤的应用程序:

  1. 在 session 中放置对象:

    def product = Product.get(1)
    session["product"] = product
  2. 执行 Ajax 调用以更新 1-m 关系,然后呈现显示新优势的部分模板。这些不应该被保存,因为用户可能会改变主意,所以调用丢弃:

    def product = session["product"]

    if ( !product.isAttached() ) {
    product.attach()
    }

    product.addToBenefits( new Benefit( title: "xx" ) )

    product.discard()

    session["product"] = product
  3. 尝试在保存操作中保存对象。

    def product = session["product"]

    if ( !product.isAttached() ) {
    product.attach()
    }
    product.save()

此时我们得到如下异常:

org.springframework.orm.hibernate3.HibernateSystemException: reassociated object has dirty collection; nested exception is org.hibernate.HibernateException: reassociated object has dirty collection

有没有办法阻止这种情况的发生,以便我可以重新附加对象并保存它,从而持久保存对产品 yield 集合的更改?

最佳答案

不要将对象存储在 session 中,而是存储 id,然后重新加载它。无论如何,attach 都会产生该成本,因此您没有节省任何东西,并导致此问题,再加上浪费服务器内存,这将影响可伸缩性。

关于session - org.hibernate.HibernateException 消息重新关联的对象有脏集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28216146/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com