Grails域对象看起来像持久保存但实际上不是

时间:2012-11-13 17:49:07

标签: grails persistence

当我无法永久保存某些对象时遇到了这种情况。对象看起来像是成功保存的,但后来我在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

1 个答案:

答案 0 :(得分:3)

Hibernate通常只会在会话结束时将对象刷新到数据库。使用sessionFactory.currentSession.flush()手动刷新会话,或使用m1.save(flush: true)保存对象以强制在会话完成之前写出对象。