有什么理由不要在域对象上使用metaClass?如

domainObjectInstance.metaClass.dynamicTransientGreeting =“你好”

这会彻底休眠吗?

最佳答案

它根本不会与Hibernate混淆,因为它不会被Hibernate看到。 GORM仅将“实际”属性映射到Hibernate属性。

这就是为什么idversion列以及从hasMany声明生成的集合(例如,由users生成的static hasMany = [users: User]集合使用AST添加到实际字节码中的原因。如果仅将它们添加到MetaClass中,则它们将不会被看到并且不会不能持久。

10-08 00:01