Hibernate中定义的Entity类(无论是JPA实现,还是Hibernate Native实现),都必须有一个无参数的构造函数。
当然,还可以有其他的构造函数,但是这个无参数的构造函数是必须的。
此外,为了支持运行时代理生成机制,JPA实现要求这个无参数的构造函数必须是public或protected的;而Hibernate Native 实现要求这个无参数的构造函数必须是非private的(即可以是public,protected或默认的)。
那么,如果没用到运行时代理生成机制(不知道这种情况下还用Hibernate干啥),那么这个无参数的构造函数也可以是private的。