首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实体类必须具有非论证构造函数。

实体类必须具有非论证构造函数。
EN

Stack Overflow用户
提问于 2015-04-25 09:36:43
回答 1查看 1.5K关注 0票数 4

我正在学习JPA,所以当我在JPA博客Vogella 1.2实体标题上学习时,我碰到了一条线,上面写着:

所有实体类都必须定义主键,必须具有非arg构造函数,或者不允许成为最终对象。

我听不懂这句话。我们是否需要专门编写非论证构造函数,因为默认的非论证构造函数总是由类继承的。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-25 09:45:08

默认情况下,当类中没有定义与JPA无关的构造函数时,就会得到非arg构造函数。是的,如果要定义构造函数,则必须定义任何arg构造函数,如下所示:

代码语言:javascript
运行
复制
 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
 }

最后一堂课意味着你不能做子类。与Hibernate一样,JPA供应商创建代理来懒散地获取行,这将最终限制性能调优的选项。因此,您可以看到,您的类可能/可能不是最终的,这取决于您的用例。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29863480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档