0

当我无法持久保存某些对象时,我遇到了一种情况。这些对象看起来像是成功保存的对象,但后来我在数据库中找不到它们。控制台中没有出现错误或通知(通常它们会出现错误)。那可能是什么?

// 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 回答