Java实体-为什么我需要一个空的构造函数?
这对您来说可能听起来很愚蠢,但是为什么我需要在@Entity
s中定义一个空的构造函数?
我看到的每个教程都说:每个实体都需要一个空的构造函数。
但是Java总是给您一个默认的不可见的空构造函数(如果您不重新定义一个的话)。
谢谢。
编辑
我认为这是一个语义问题。我所理解的“需求”是书面的。
含义:始终在您的实体中编写一个空的构造函数。
例:
@Entitypublic class MyEntity implements Serializable {
@Id
private String str;
public MyEntity(){}
//here getter and setter
}
但是,当您不重新定义Java时,Java总是会为您提供一个空的构造函数(使用参数编写另一个)。
在这种情况下,编写此空的构造函数似乎毫无用处。
回答:
需要一个空的构造函数来通过持久性框架进行反射来创建新实例。如果不为该类的任何其他构造函数提供参数,则不需要提供空的构造函数,因为默认情况下会得到一个。
您还可以使用@PersistenceConstructor批注,如下所示
@PersistenceConstructorpublic Movie(Long id) {
this.id = id;
}
如果项目中存在Spring Data,则初始化您的实体。因此,您也可以避免使用空的构造函数。
以上是 Java实体-为什么我需要一个空的构造函数? 的全部内容, 来源链接: utcz.com/qa/425209.html