当前位置: 首页 > 知识库问答 >
问题:

是否可以将Hibernate实体类用作 GSON 的 POJO?

梅跃
2023-03-14

我正在做一个项目,我们有一个使用spring数据和hibernate的spring boot应用程序。现在我想使用GSON库来处理JSON文件。我读过一个教程,在那里可以清楚地看到,创建POJO类并将JSON文件从这些类转换成对象是可能的。hibernate也是如此。

现在我的问题是:有没有可能设计POJO(或实体)类,使它们既适用于hibernate又适用于GSON。如果可能的话,如果我这样做,会出现问题吗?

提前感谢!

编辑:这是我读到的关于POJOs for GSON的教程:教程point - GSON

共有2个答案

颛孙俊
2023-03-14

实际上,您不应该基于我们使用的库(GSON或Jackson API)来设计Entity或POJO类。

您可以参考这里进行明确的解释。https://www.geeksforgeeks.org/convert-java-object-to-json-string-using-jackson-api/

郑向阳
2023-03-14

这是可能的,但不是一个好的设计。如果您使用它,例如序列化rest接口数据,那么它将很难将您的restendpoint与数据库耦合,或者它可能导致安全问题(序列化敏感数据)等。因此,它可能导致硬耦合,后者将更难解耦。创建单独的模型到db和其他接口总是好的。您可以使用映射库(例如mapstuct)轻松地在模型之间进行映射。

 类似资料:
  • 问题内容: 这是我实现的模型: 我认为为每个LoginSession实例创建新的Gson实例是没有用的。 但是我担心的是线程安全问题。大约将创建1000+实例/秒。 可以将Gson实例用作静态字段吗? 感谢您的任何建议/更正。 问题答案: 对我来说似乎很好。GSON实例中没有任何东西使其与的特定实例相关,因此它应该是静态的。 GSON实例应该是线程安全的,并且存在关于已修复问题的错误。

  • 问题内容: 您是否具有Hibernate实体的通用基类,即具有id,version和其他通用属性的MappedSuperclass?有什么缺点吗? 例: 问题答案: 这对我们来说很好。除了ID和创建日期,我们还有一个修改日期。我们还具有一个实现 Taggable 接口的中间 TaggedBaseEntity ,因为我们的某些Web应用程序实体具有标签,例如有关Stack Overflow的问题。

  • 问题内容: 默认情况下,Hibernate 5不支持PostgreSQL 数据类型。 有什么方法可以实现对Hibernate + Spring JPA的支持? 如果有办法,与Hibernate一起使用的利弊是什么? 问题答案: 感谢Vlad Mihalcea我们有这样的机会!) 他创建了hibernate类型的 lib: 这为Hibernate添加了对’json’,’jsonb’和其他类型的支持:

  • 本文向大家介绍hibernate 实体类可以被定义为 final 吗?相关面试题,主要包含被问及hibernate 实体类可以被定义为 final 吗?时的应答技巧和注意事项,需要的朋友参考一下 实体类可以定义为 final 类,但这样的话就不能使用 hibernate 代理模式下的延迟关联提供性能了,所以不建议定义实体类为 final。

  • 问题内容: 今天,我在采访中面临一个问题。是否可以在Singleton类上应用继承概念?我说过,由于构造函数是私有的,因此我们无法扩展该Singleton类。 他问我的下一件事是将继承应用于该Singleton类。因此,我将Singleton的构造函数作为受保护对象,认为孩子的构造函数也已受到保护。但是我错了,孩子可以有一个等于或大于该值的修饰符。 因此,我请他在这种情况下举一个真实的例子。他没能

  • 问题内容: 是否可以将类中某个类的实例设置为null。例如,我可以做这样的事情吗 我已经尝试过了,但是行不通。使用“ this = null”,我得到一个错误,即左侧必须是一个变量。有没有办法实现类似的目标? 问题答案: 一个对象的实例不知道哪些引用可能在引用它,因此该对象中的代码无法使这些引用无效。您要的是不可能的(*)。 至少没有添加一堆脚手架来跟踪所有参考,并且以某种方式通知其所有者应该将它