MongoDB和mysqlDB在grails中一起使用会导致我的项目出现问题

MongoDB和mysqlDB在grails中一起使用会导致我的项目出现问题,grails,gorm,Grails,Gorm,我有两个域类 一个是User.groovy,它存储在mongodb中 class User { String firstName String lastName Address address static mapWith = "mongo" static mapping = {version false } static constraints = { address nullable: true } }

我有两个域类

一个是User.groovy,它存储在mongodb中

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


这背后的原因是什么?

跨映射的关联可能不起作用。id之所以有效,是因为grails在相关的惰性对象上做了一个诡计,以防止开销。如果所需的只是关联的id,那么它通常存储在
用户
对象(例如上面的示例)中的一个字段中,该字段可能类似于
地址_id
。如果您只请求userInstance.address.id,那么GORM足够聪明,除非确实需要,否则不会获取整个地址记录(惰性)。

为什么要这样做?将“属于”的对象放在同一数据存储中。否则,你将不得不面对各种各样的冲突。