0

次の分離基準クエリを実行しようとしています。

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

しかし、e.isAttached()その直後に電話すると、 true.

背景: メモリ内に Equipment 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 に答える