Grails 升级到 3.3.x:无法使用 grails 3.3.5 访问 persistentEntity.relationshipMap 和 persistentEntity.hasOneMap
Grails Upgrade to 3.3.x : Cannot access persistentEntity.relationshipMap and persistentEntity.hasOneMap with grails 3.3.5
根据 grails 3 的升级文档3.x (http://docs.grails.org/3.3.x/guide/upgrading.html)
GrailsDomainClass 已弃用 class PersistentEntity.java。
现在,我正在尝试将 3.2.11 上的 grails 应用程序升级到 3.3.5
在这里,我删除了所有出现的带有 PersistentEntity 的 GrailsDomainClass。
现在,当我尝试打电话时:
示例:
PersistentEntity persistentEntity = grailsApplication.getArtefacts("Domain")[0] as PersistentEntity;
println persistentEntity.relationshipMap
println persistentEntity.hasOneMap
It gives me groovy.lang.MissingPropertyException: No such property:
relationshipMap for class: DefaultGrailsDomainClass1_groovyProxy
And,
groovy.lang.MissingPropertyException: No such property: hasOneMap for
class: DefaultGrailsDomainClass1_groovyProxy
谁能帮我正确 api 获取 relationshipMap 和 hasOneMap。
我试图搜索很多关于这个但直到现在都没有成功。
提前致谢!
我找到了解决方案。
这里没有直接的 api,但是可以通过以下方式访问:
Map hasOneMap = GrailsClassUtils.getStaticPropertyValue(persistentEntity.clazz, "hasOne") as Map
Map relationshipMap = GrailsClassUtils.getStaticPropertyValue(persistentEntity.clazz, "hasMany") as Map
根据 grails 3 的升级文档3.x (http://docs.grails.org/3.3.x/guide/upgrading.html)
GrailsDomainClass 已弃用 class PersistentEntity.java。
现在,我正在尝试将 3.2.11 上的 grails 应用程序升级到 3.3.5
在这里,我删除了所有出现的带有 PersistentEntity 的 GrailsDomainClass。 现在,当我尝试打电话时:
示例:
PersistentEntity persistentEntity = grailsApplication.getArtefacts("Domain")[0] as PersistentEntity;
println persistentEntity.relationshipMap
println persistentEntity.hasOneMap
It gives me groovy.lang.MissingPropertyException: No such property: relationshipMap for class: DefaultGrailsDomainClass1_groovyProxy
And,
groovy.lang.MissingPropertyException: No such property: hasOneMap for class: DefaultGrailsDomainClass1_groovyProxy
谁能帮我正确 api 获取 relationshipMap 和 hasOneMap。 我试图搜索很多关于这个但直到现在都没有成功。
提前致谢!
我找到了解决方案。
这里没有直接的 api,但是可以通过以下方式访问:
Map hasOneMap = GrailsClassUtils.getStaticPropertyValue(persistentEntity.clazz, "hasOne") as Map
Map relationshipMap = GrailsClassUtils.getStaticPropertyValue(persistentEntity.clazz, "hasMany") as Map