gpt4 book ai didi

hibernate - 删除grails域对象的代理部分?

转载 作者:行者123 更新时间:2023-12-02 23:37:04 48 4
gpt4 key购买 nike

我想获取域对象的实际实例。也就是说,我需要序列化该对象,并且我尝试在 httpinvoker 链的两侧使用域对象。有没有办法获得一个没有任何 grails 连接的完全加载的域对象,以便我可以序列化它?

最佳答案

我们执行GrailsHibernateUtil.unwrapIfProxy(obj)。它不会摆脱 Grails 注入(inject)方法等 - 仅 Hibernate/GORM 代理,但它应该足够了。

编辑:

  1. 抱歉,您是否将域类声明为 implements Serialized
  2. 这可能是您添加/注入(inject)到类中的内容,例如 Grails non-bug 6379 .
  3. 这段代码(明白 here )在一个小域类的 grails console 中为我工作:

.

import org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsHibernateUtil
import com.somegroup.domain.*

def loc = SomeDomainClass.get(1)
loc = GrailsHibernateUtil.unwrapIfProxy(loc)

ByteArrayOutputStream bos = new ByteArrayOutputStream()
ObjectOutput out = new ObjectOutputStream(bos)

out.writeObject(loc)
byte[] yourBytes = bos.toByteArray()

关于hibernate - 删除grails域对象的代理部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622481/

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