为什么我们在JPA中需要空构造函数。 ??

时间:2012-09-09 12:10:11

标签: jpa

现在,我正在学习JPA。 JPA建议我们必须有Public方法和私有字段,并且没有static和final with variable。还有空构造函数..为什么我们需要这种格式。???

1 个答案:

答案 0 :(得分:5)

实际上规范不建议,它是关于以下(除其他事项)之外的规范:

  1. 必须存在public或protected no-arg构造函数。额外的构造函数很好。
  2. 持久字段不应公开(受保护,包可见和私有都是大声的)。
  3. 最终的持久属性或方法不是大声的。
  4. 这些限制的一些原因是:

    1. JPA提供程序需要创建实体实例。如果类只包含带有任意参数的构造函数,则JPA提供程序无法计算出这些参数的值。
    2. 可能公共可见性根本不是大声的,因为不应该从课外直接访问字段。或许有更好的理由,但我不知道。
    3. 提供商想要创建代理,如果方法是最终的,则不可能。属性也不应该是最终的,因为提供者不能为它们赋值。
    4. 此外,静态持久属性没有太大意义,因为为什么一个值将由所有实体实例共享。