gpt4 book ai didi

java - 禁用 Play Framework 模型类的增强功能

转载 作者:行者123 更新时间:2023-12-01 13:24:30 24 4
gpt4 key购买 nike

有没有办法禁用 Play 框架模型类的增强功能?我问这个问题的原因是因为我想将模型对象序列化为 JSON,但是一旦 json 序列化程序接触到任何未初始化的模型,该模型将被初始化,导致额外的数据库命中,并且生成的 json 将因不必要的模型对象而变得臃肿。我尝试从 application.conf 中排除 models.* 并使用 ServerConfigStartup 进行此调用 serverConfig.addClass(Model.class) 或该调用调用 serverConfig.addPackage("models") 但它们都不适合我。

最佳答案

Ebean 要求增强模型类。如果模型类未经增强,则不能将其与 ebean 一起使用。

因此,您的选择是,不使用 ebean,或者不将模型对象序列化为 JSON。后者被认为是最佳实践,将 REST API 数据对象绑定(bind)到数据库模型并不是一个好主意,因为您现在遇到的问题 - 这两个模型通常在概念上不同 - 数据库模型引用了其他模型模型,而 JSON 模型则没有。因此使用不同的类来表示不同的模型。

还有另一种选择,使用 @JsonIgnore 等 Jackson 注释来忽略这些属性。但实际上,这是一个滑坡,随着你的代码库的发展,当你开始在你的类上使用更多这些注释并维护模型以确保你不会破坏你的 JSON 时,几乎不可能推断出你的 JSON 会是什么样子。您的公共(public) REST API 将成为一场噩梦。

关于java - 禁用 Play Framework 模型类的增强功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21845730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com