附加标准查询的结果已附加

时间:2012-08-06 21:16:57

标签: hibernate grails gorm

我正在尝试运行以下分离条件查询:

    def e = new DetachedCriteria(Equipment).build {
        eq('name', ef.name)
    }.get()

但是当我稍后立即致电e.isAttached()时,我会获得true

背景:我知道我有一个对设备e的内存附加引用,但我想要一个独立的引用,以便我可以将旧的数据库值与内存集进行比较,看看有什么变化......

1 个答案:

答案 0 :(得分:0)

您在此处创建的内容不是分离查询* - 它是Equipment实例。通过添加get(),您正在执行查询并生成附加的Equipment实例。要创建分离的查询,请删除get()

def dQuery = new DetachedCriteria(Equipment).build {
    eq('name', ef.name)
}

然后当你需要执行时:

def e = dQuery.get()

如果要分离Equipment实例,则可以调用

e.discard()
  • 实际上你正在创建分离的查询 - 它从来没有被分配给任何东西,所以它在后台有点。