【发布时间】:2019-01-21 10:59:34
【问题描述】:
问题相似性,即这不是重复的
注意:有许多问题与这个问题相似:
What is the exact meaning of the JPA @Entity annotation?
What is an Entity? Why is it called Entity?
但它们要么引用“实体框架”,要么引用“@Entity”注释(这显然是用来说明一个类可以映射到一个表)。尽管我的问题可能看起来与这些相似,但它略有不同,因此不应被视为重复。
我的实际问题
我正在使用一个代码库,其中包含一个名为“com.xxx.yyy.entities”的包。这个包包含许多具有基本相同结构的类:
- 私人领域
- 每个私有字段的公共吸气剂
- 每个私有字段的公共设置器
- “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 或从 JSON 序列化/反序列化(此特定项目使用 GSON 来实现这一点)。
我的问题是:
- 这里的“实体”到底是什么意思?
- 它基本上只是意味着一个旨在被序列化到/从 JSON 序列化的类吗?有没有一个更具体的术语而不是极其通用的“实体”?
- 这是 Java 项目中的常见模式吗?
【问题讨论】:
-
该术语通常用于命名除了值之外还具有标识的事物,并且即使其值发生变化也被认为是“相同的事物”,而不是值对象 - 请参阅@ 987654324@。因此,它是一个非常通用但合适的名称,它基本上只是一个可变状态的容器。