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

slides_alpha:

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

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

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

谢谢。

编辑

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

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

例:

@Entity
public class MyEntity implements Serializable {

   @Id
   private String str;

   public MyEntity(){}

   //here getter and setter
}

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

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

u6f6o:

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

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

@PersistenceConstructor
public Movie(Long id) {
    this.id = id;
}

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Java的StringBuilder的有CharSequence的构造函数,另一个用于字符串?

了解为什么它不安全开始构造函数中的一个线程在Java内存模型方面

错误:实体和POJO必须有一个可用的公共构造 - Java的

我为什么不能访问在一个构造函数创建类的实例(JAVA)

为什么我需要一个无参数的构造函数使用内CDI ApplicationScoped豆构造方法注入?

为什么一个空的Lambda和构造函数导致编译器错误明确的回报(Java的漏洞?)

Java:为什么扩展需要一个空的构造函数?

为什么我不能在Java中声明一个函数数组?

为什么我们需要一个空的构造函数来从Firebase传递/保存数据?

为什么我得到一个“在实体类上找不到属性节点……绑定构造函数参数!” 使用Spring Data MongoDB

为什么我们需要一个用户提供的const对象构造函数?

为什么模型绑定器需要一个空的构造函数

为什么我的Arduino类构造函数需要一个参数?

为什么在运行实体框架迁移后我只有一个表?

C ++:没有匹配的调用函数:为什么需要一个空的构造函数?

为什么我需要在这里显式编写一个构造函数?

如果尝试在另一个公共类中将数组作为参数传递,为什么构造函数将无法在Java中编译?

因为什么时候必须在Java中包含一个空的构造函数?

为什么我从CoreData实体中只得到一个名字?

当我尝试关联现有实体时,为什么实体框架会创建一个新实体?

为什么实体框架为我的视图模型创建一个区分符列?

为什么Java编译器在第一个语句super()之后在构造函数中复制实例初始化程序块?

为什么我们需要在实体中声明非空构造函数?

为什么我们需要一个扫描器对象来在 java 中获取输入

Java LRUCache,为什么我们需要另一个集合

Z3 Java 为什么我需要一个策略?

为什么我需要添加双引号来打印java中char数组的第一个和最后一个元素

Java如果我需要从构造函数传递一个变量,我如何声明另一个类的实例变量

为什么 EF Core 将我的非装饰类视为一个实体?