这是由seam-gen(2.2.0)生成的原始代码
<h:column>
<f:facet name="header">
<ui:include src="/layout/sort.xhtml">
<ui:param name="entityList" value="#{userList}"/>
<ui:param name="propertyLabel" value="Name"/>
<ui:param name="propertyPath" value="user.name"/>
</ui:include>
</f:facet>
<h:outputText value="#{_user.name}"/>
</h:column>
我们喜欢排序功能,因此我们包含了rich:column sortBy,但是排序是不正确的(在分页页面中它丢失了排序功能,因为排序参数没有在页面导航上发送),如果我们不使用/在f:facet中的layout / sort.xhtml。
<rich:column sortBy="#{_user.name}">
<f:facet name="header">Name</f:facet>
<h:outputText value="#{_user.name}"/>
</rich:column>
我们如何获得与使用rich之前相同的功能:column sortBy
答案 0 :(得分:1)
对于sortBy
,就像seam-gen为你生成排序一样,你需要生成完整的列表,而不是接缝的实体框架所做的列表的一部分。
即:
List allResults = entityManager.createQuery("From X").getResultList();
现在,如果你只是为了测试而尝试在你的sortBy中使用这个列表,你会发现它会像你一样工作。但是,缺点是这将加载所有结果并放入内存。这可能不是你想要的。
然而,您应该将此与一些搜索结果一起使用,因此它已根据某些用户输入进行过滤。