我正在将Collection更改为SortedSet,因为我需要它始终与创建它们的顺序一致.我已经更改了我的模型属性
@OneToMany(cascade = CascadeType.ALL, mappedBy = "contentId")
private Collection<Footnote> footnoteCollection;
Run Code Online (Sandbox Code Playgroud)
至
@OneToMany(cascade = CascadeType.ALL, mappedBy = "contentId")
private SortedSet<Footnote> footnoteSortedSet;
Run Code Online (Sandbox Code Playgroud)
以及所有相关功能,使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.我认为元模型错误已修复,请尝试最新版本.
归档时间: |
|
查看次数: |
2600 次 |
最近记录: |