我有两个域类
一个是存储在mongodb中的User.groovy
class User {
String firstName
String lastName
Address address
static mapWith = "mongo"
static mapping = {version false
}
static constraints = {
address nullable: true
}
}
第二个是存储mysqlDB的地址
class Address {
String address1
String address2
String city
String state
String country
static constraints = {
}
}
当我在逻辑
下运行时def userInstance=User.get(1l)
println "--->>"+userInstance?.address?.address1
加载[class com.imomentous.Address]类型的关联[1]时出错。关联实例不再存在。
当我在逻辑
下运行时def userInstance=User.get(1l)
println "--->>"+userInstance?.address?.id
它给了我 - > 1
背后的原因是什么?
答案 0 :(得分:0)
映射之间的关联可能无法正常工作。 id工作的原因是由于一个偷偷摸摸的技巧grails在相关的懒惰对象上做以防止开销。如果所需要的只是一个关联的id,它通常存储在User
对象(对于上面的示例)中,可能类似于address_id
。如果您只请求userInstance.address.id,那么GORM足够聪明,除非确实需要,否则不会获取整个地址记录(懒惰)。