Ric*_*ard 3 hibernate primefaces
我循环遍历'RSVP'对象的集合并打印出每个'Name'属性的值,就像这样
<p:dataTable id="rsvpDataTable" var="rsvp" value="#{eventController.event.rsvps}"...
<h:outputText value="#{rsvp.name}" />
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
但我收到错误:类'org.hibernate.collection.internal.PersistentSet'没有属性'name'
相反,我打印出'rsvp.class.name'来查看它是什么类型,它确实是一个PersistentSet.
但为什么?它应该是集合中的单个RSVP实例.
如果我调试代码并在getRsvps()处停止,我可以看到它返回一个包含我的RSVP对象的PersistentSet.RSVP与Event有双向关系.这会导致这个吗?
我有点怀疑它实际上是一个PersistentSet,我原本以为它会被转换回现在正常的'Java'设置,但也许不会.
谢谢
你不能迭代a Set
,这就是现在的JSF限制.JSF 2.2将能够做到这一点.
也就是说,你可以自己转换它,或者我会做什么,你可以使用OmniFaces #{of:setToList}
EL功能.你不必重新发明轮子.:)
请参阅BalusC的这个答案.
至于Hibernate返回的事实PersistentSet
,这就是它的工作方式.Hibernate有它自己的实现Set
,所以它可以实现像Lazy-Loading等功能.
归档时间: |
|
查看次数: |
3382 次 |
最近记录: |