在域对象上设置元类属性

发布于 2024-12-08 21:40:34 字数 114 浏览 1 评论 0原文

有什么理由不对域对象使用元类?如

domainObjectInstance.metaClass.dynamicTransientGreeting = "Hello"

这会扰乱休眠吗?

Any reason not to use metaClass on domain objects? as in

domainObjectInstance.metaClass.dynamicTransientGreeting = "Hello"

Will this mess with hibernate at all?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怪我入戏太深 2024-12-15 21:40:34

它根本不会干扰 Hibernate,因为 Hibernate 不会看到它。 GORM 仅将“真实”属性映射到 Hibernate 属性。

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

It won't mess with Hibernate at all since it won't be seen by Hibernate. GORM only maps "real" properties to Hibernate properties.

That's why the id and version columns and the collections that are generated from hasMany declarations (e.g. the users collection generated by static hasMany = [users: User] are added to the actual bytecode using an AST. If they were added just to the MetaClass they wouldn't be seen and wouldn't be persistent.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文