0

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

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

但是当我e.isAttached()随后立即打电话时,我得到了true

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

4

1 回答 1

0

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

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

然后当您需要执行时:

def e = dQuery.get()

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

e.discard()
  • 实际上,您正在创建分离的查询 - 它只是从未分配给任何东西,因此它有点在后台。
于 2012-08-08T02:10:54.267 回答