0

特定のオブジェクトを永続的に保存できない状況に遭遇しました。オブジェクトは正常に保存されたもののように見えますが、後で DB で見つけることができません。コンソールに表示されるエラーや通知はありません (通常はエラーで表示されます)。それは何ですか?

// inside a transactioned service method
def m1 = new Merchant(...)
assert m1.save()                // ok
assert m1.id                    // got some good id
assert Merchant.findById(m1.id) // it fails o_O

その他のオブジェクトは通常どおり保存されます。

Grails 2.1.1、一部の Oracle

4

1 に答える 1

3

通常、Hibernate はセッションの最後にのみオブジェクトをデータベースにフラッシュします。でセッションを手動でフラッシュするsessionFactory.currentSession.flush()か、 でオブジェクトを保存してm1.save(flush: true)、セッションが完了する前にオブジェクトが強制的に書き出されるようにします。

于 2012-11-13T17:55:31.787 に答える