0

现在,我正在学习 JPA。JPA 建议我们必须有公共方法和私有字段,并且没有静态和最终变量。还有空构造函数..为什么我们需要这种格式.???

4

1 回答 1

5

实际上规范不推荐,它是相当规范的以下(除其他外):

  1. 公共或受保护的无参数构造函数必须存在。额外的构造函数很好。
  2. 持久性字段不应该是公共的(受保护的、包可见的和私有的都是大声的)。
  3. 最终的持久性属性或方法是不大声的。

这些限制的一些原因是:

  1. JPA 提供者需要创建实体实例。如果类只包含带有任意参数的构造函数,则 JPA 提供程序无法计算出这些参数的值。
  2. 可能公共可见性根本没有大声,因为不应从课堂外直接访问字段。或者也许有更好的理由,但我没有意识到这一点。
  3. Provider 想创建代理,如果方法是 final 是不可能的。属性也不应该是最终的,因为这样提供者就不能为它们赋值。

此外,静态持久属性没有太大意义,因为为什么一个值会被所有实体实例共享。

于 2012-09-09T18:13:56.580 回答