Java实体-为什么我需要一个空的构造函数?

这对您来说可能听起来很愚蠢,但是为什么我需要在@Entitys中定义一个空的构造函数

我看到的每个教程都说:每个实体都需要一个空的构造函数。

但是Java总是给您一个默认的不可见的空构造函数(如果您不重新定义一个的话)。

谢谢。

编辑

我认为这是一个语义问题。我所理解的“需求”是书面的。

含义:始终在您的实体中编写一个空的构造函数。

例:

@Entity

public class MyEntity implements Serializable {

@Id

private String str;

public MyEntity(){}

//here getter and setter

}

但是,当您不重新定义Java时,Java总是会为您提供一个空的构造函数(使用参数编写另一个)。

在这种情况下,编写此空的构造函数似乎毫无用处。

回答:

需要一个空的构造函数来通过持久性框架进行反射来创建新实例。如果不为该类的任何其他构造函数提供参数,则不需要提供空的构造函数,因为默认情况下会得到一个。

您还可以使用@PersistenceConstructor批注,如下所示

@PersistenceConstructor

public Movie(Long id) {

this.id = id;

}

如果项目中存在Spring Data,则初始化您的实体。因此,您也可以避免使用空的构造函数。

以上是 Java实体-为什么我需要一个空的构造函数? 的全部内容, 来源链接: utcz.com/qa/425209.html

回到顶部