如果此问题已经发布,或者如果信息随时可用,我很抱歉,我只是因为没有找到它而感到愚蠢。我看了很多。我知道它们不能是私有的,因为eclipselink使用反射来实例化类。
我似乎发现当我将类标记为私有时,都会失败。 但是,如果我将它们标记为受保护,则LAZY加载将失败,而EAGER正常工作。这是文档中某处的既定规则,还是有时会起作用?
换句话说,eclipselink jpa实体类必须公开吗?如果重要的话,我正在使用derby嵌入式数据库作为我的底层数据库。
答案 0 :(得分:3)
来自http://www.objectdb.com/java/jpa/entity/types
实体类要求
便携式JPA实体类:
- 应该是顶级类(即不是嵌套/内部类)。
- 应该有一个公共或受保护的无参数构造函数。
- 不能是最终的,不能有最终方法或最终实例变量。
由于顶级类的可见性修饰符可以是public
或包级别(如果未指定),答案是实体必须是顶级类public
或具有包级别可见性。