gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:10:02 27 4
gpt4 key购买 nike

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

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

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

让我澄清一下..我对“需要”的理解是

含义:总是在你的实体中写一个空的构造函数。

示例:

@Entity
public class MyEntity implements Serializable {

@Id
private String str;

public MyEntity(){}

//here getter and setter
}

但是当你不重新定义它时,Java总是给你这个空的构造函数(写一个带参数的另一个)。

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

最佳答案

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

您还可以使用如下所示的@PersistenceConstructor 注释

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

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

关于Java 实体 - 为什么我需要一个空的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18099127/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com