我正在将 Collection 更改为 SortedSet,因为我需要它始终保持与创建它们时一致的顺序。我已将模型属性从
@OneToMany(cascade = CascadeType.ALL, mappedBy = "contentId")
private Collection<Footnote> footnoteCollection;
to
@OneToMany(cascade = CascadeType.ALL, mappedBy = "contentId")
private SortedSet<Footnote> footnoteSortedSet;
以及所有相关功能,以便 Netbeans 不再显示任何错误。当我运行该应用程序时,出现错误:Exception Description: Could not load the field named [footnoteSortedSet] on the class [class com.mysite.cmt.model.Content_]. Ensure there is a corresponding field with that name defined on the class.
由于我刚刚正确更改了此设置并重新启动了我的应用程序,所以我很难弄清楚为什么它说它未设置......
您收到的错误似乎来自 JPA 元模型。我假设您正在以某种方式生成它,如果您不使用 Criteria 中的元模型,那么您不需要它,错误就会消失。
问题是JPA只允许集合接口,Map、List、Set、Collection。因此,虽然您可以在新实例中使用 SortedSet,但从数据库读取的对象将使用特殊的惰性 List 实现。
在 EclipseLink 中,如果将映射标记为 EAGER,则可以使用 SortedSet。
我认为元模型错误已修复,请尝试最新版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)