休眠允许私有构造函数

时间:2019-07-18 13:01:48

标签: java hibernate jpa

有人可以帮我吗...

我用一个私有的无参数构造函数创建了一个pojo(与我们需要使用受保护或公共构造函数的JPA建议相反) 并且我能够检索,更新,删除,插入数据。

为什么可能这样?

pipe

2 个答案:

答案 0 :(得分:1)

根据Hibernate documentation(强调我):

  

实体类应具有无参数构造函数。 Hibernate和JPA都需要这样做。

     

JPA要求将此构造函数定义为public或protected。在大多数情况下,只要系统SecurityManager允许覆盖可见性设置,Hibernate就不会在意构造函数的可见性。就是说,如果您希望利用运行时代理生成,则构造函数至少应具有程序包可见性。

答案 1 :(得分:0)

如果Hibernate找到具有正确参数的构造函数,无论可见性如何,它将使用反射将其构造函数设置为可访问的。