当我无法永久保存某些对象时遇到了这种情况。对象看起来像是成功保存的,但后来我在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
答案 0 :(得分:3)
Hibernate通常只会在会话结束时将对象刷新到数据库。使用sessionFactory.currentSession.flush()
手动刷新会话,或使用m1.save(flush: true)
保存对象以强制在会话完成之前写出对象。