Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >实体类必须具有非论证构造函数。

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

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

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

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 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

复制
相关文章

相似问题

必须是具有公共无参数构造函数的非抽象类型

17

根据JPA规范,默认构造函数必须在实体类中,为什么?

12

具有不同论证长度函数的函数

20

必须是具有公共无参数构造函数.net核心的非抽象类型。

14

必须是具有公共无参数构造函数c#的非抽象类型。

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文