gpt4 book ai didi

java - 实体类必须具有无参数的构造函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:20:10 26 4
gpt4 key购买 nike

我正在研究 JPA,所以在研究 JPA BLOG Vogella 1.2 Entity Heading 时,我遇到了一行内容:

All entity classes must define a primary key, must have a non-arg constructor and or not allowed to be final

我无法理解这一行。我们是否需要专门编写一个非参数构造函数,因为默认的非参数构造函数总是由类继承。

不允许是 final 是什么意思,这是否意味着我们总是可以扩展实体类?如果是为什么这个强制,为什么它不能是最终的

最佳答案

默认情况下,当您的类中没有定义与 JPA 无关的构造函数时,您将获得非参数构造函数。是的,如果您正在定义一个构造函数,那么您必须定义无参数构造函数,例如:

 public class Student {
public Student() {}//default ctor which is needed by JPA to convert row from DB to java object
public Student(int id) {..}//ctor which accepts one arg
}

将类设置为 final 意味着您不能进行子类化。像 Hibernate 这样的 JPA 供应商创建代理来延迟获取行,这最终会限制您的性能调整选项。因此,根据您的用例,您会发现您的类(class)可能是 final类也可能不是 final类。

关于java - 实体类必须具有无参数的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29863480/

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