我有一个像这样的 Realm 类:
class Domain {
String a
int b
String c
...
def afterInsert(){
def anotherDomain = new AnotherDomain()
anotherDomain.x=1
anotherDomain.y=2
if(anotherDomain.save()){
println("OK")
}else{
println("ERROR")
}
}
}
它显示“OK”,我什至可以打印anotherDomain对象,一切似乎都正常,没有错误,什么也没有,但是anotherDomain对象不在数据库中持久存在
最佳答案
除非尝试保存withNewSession
,否则无法将域持久保存到数据库中。
def beforeInsert(){
def anotherDomain = new AnotherDomain()
anotherDomain.x=1
anotherDomain.y=2
AnotherDomain.withNewSession{
if(anotherDomain.save()){
println("OK")
}else{
println("ERROR")
}
}
}
}
域对象是数据库的
flushed
时,将触发所有事件。现有 session 用于刷新。相同的 session 不能用于处理另一个域上的save()
。必须使用新的 session 来处理AnotherDomain
的持久性。更新
使用
beforeInsert
事件比afterInsert
更有意义。如果x
和y
取决于Domain
的任何持久值属性,则可以很好地从休眠缓存中获取它们,而不用转到db。