Eclipselink JPA实体类必须公开吗?

时间:2017-12-12 22:44:50

标签: java jpa eclipselink derby

如果此问题已经发布,或者如果信息随时可用,我很抱歉,我只是因为没有找到它而感到愚蠢。我看了很多。我知道它们不能是私有的,因为eclipselink使用反射来实例化类。

我似乎发现当我将类标记为私有时,都会失败。 但是,如果我将它们标记为受保护,则LAZY加载将失败,而EAGER正常工作。这是文档中某处的既定规则,还是有时会起作用?

换句话说,eclipselink jpa实体类必须公开吗?如果重要的话,我正在使用derby嵌入式数据库作为我的底层数据库。

1 个答案:

答案 0 :(得分:3)

来自http://www.objectdb.com/java/jpa/entity/types

  

实体类要求

     

便携式JPA实体类:

     
      
  • 应该是顶级类(即不是嵌套/内部类)。
  •   
  • 应该有一个公共或受保护的无参数构造函数。
  •   
  • 不能是最终的,不能有最终方法或最终实例变量。
  •   

由于顶级类的可见性修饰符可以是public或包级别(如果未指定),答案是实体必须是顶级类public或具有包级别可见性。