java - 为什么 POJO 需要序列化/反序列化为通常包含在 'entities' 包中的 JSON? 'entities'是什么意思?

标签 java jackson gson naming


问题相似性,即这不是重复的

注意:有很多问题与此类似:

Mapping POJO to Entities

What is the exact meaning of the JPA @Entity annotation?

What is an Entity? Why is it called Entity?

但它们要么引用“ Entity Framework ”,要么引用“@Entity”注释(显然用于声明类可以映射到表)。虽然我的问题可能看起来与这些类似,但略有不同,因此不应被视为重复。


我的实际问题

我正在使用一个代码库,其中有一个名为“com.xxx.yyy.entities”的包。该包包含许多具有基本相同结构的类:

  1. 私有(private)字段
  2. 每个私有(private)字段的公共(public) getter
  3. 每个私有(private)字段的公共(public) setter
  4. “toString”方法。

最简单的类之一的示例如下:

public class Competition {
  private String id;
  private String name;
  public String getId()            { return id;        }
  public void setId(String id)     { this.id = id;     }
  public String getName()          { return name;      }
  public void setName(String name) { this.name = name; }
  public String toString() { 
    return "{" + "" + "id=" + getId() + "," + "name=" + getName() + "}"; 
  }
}

“实体”包中包含的类从未实际实例化,而是始终与 JSON 进行序列化/反序列化(此特定项目使用 GSON 来实现此目的)。

我的问题是:

  1. 这里的“实体”到底是什么意思?
    • 它基本上只是意味着一个旨在与 JSON 序列化的类吗?难道没有比极其通用的“实体”更具体的术语了吗?
  2. 这是 Java 项目中的常见模式吗?

最佳答案

在传统意义上,“实体”是持久保存到关系数据库的对象。通常(但不一定)实体映射到表。从更一般的意义上来说,en Entity 表示映射到其他序列化对象(例如 JSON)的实现。

我认为这个词来自Entity–relationship (ER) 模型,这又与如何在数据模型(通常是关系数据库)中表示信息有关。这不仅仅是 Java 的概念,因为 ER 数据建模比 Java 早了几十年。

关于java - 为什么 POJO 需要序列化/反序列化为通常包含在 'entities' 包中的 JSON? 'entities'是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54288510/

相关文章:

java - 如何使用mockito抛出JsonProcessingException

java - ApachePoi 在 OpenJdk 1.8.0_121 上因字体错误而失败 在 Oracle Jre 上没问题

java - Jackson 如何容忍 json 中错误的参数类型?

java - GSON 异常 - 打印在序列化 Nan 时出错的字段名称

java - 如何正确地将特定对象的列表转换为 Gson?

kotlin - 将枚举序列化为整数值

java - 在 Java 中使用 Regex 到 "transform"html 标签样式中的 css 样式

java - 如何使用 Java 的 String.replaceAll 方法替换加号

java - 如何对 Jackson 生成的 JSON 数据进行编码?

java - Spring Boot 中 OffsetDateTime 的 jackson 日期格式