Jsf Primefaces filterBy覆盖其他数据表

Jsf Primefaces filterBy覆盖其他数据表,jsf,primefaces,primefaces-datatable,Jsf,Primefaces,Primefaces Datatable,我有两个类,一个人可能有多只宠物: public class Person { List<Pet> pets; // Getter & Setter } 因为在我的例子中有些人有很多宠物,所以我增加了过滤宠物的机会。一切看起来都很好,显示正确。过滤器也可以正常工作 但我的问题是,如果我过滤A个人的pets表,然后展开B个人的pets表,pets表也只包含A个人的过滤pets表的结果。因此,过滤其中一个pets表似乎会覆盖所有pets表的内容 是否有可能使筛

我有两个类,一个人可能有多只宠物:

public class Person {
    List<Pet> pets;

    // Getter & Setter
}
因为在我的例子中有些人有很多宠物,所以我增加了过滤宠物的机会。一切看起来都很好,显示正确。过滤器也可以正常工作

但我的问题是,如果我过滤A个人的pets表,然后展开B个人的pets表,pets表也只包含A个人的过滤pets表的结果。因此,过滤其中一个pets表似乎会覆盖所有pets表的内容

是否有可能使筛选结果仅对筛选它的特定数据表可用?或者,在扩展其他人B的行时,是否有可能“刷新”他们的pets表?

它看起来类似于,请尝试查看,否则,您应该添加一个完整的示例,以重现您的案例。
<p:datatable value="#{SearchBean.resultList}" rowExpandMode="single" id="resultList" var="result" ...>
   <p:column>
      <p:rowToggler rendered="#{result.pets.size() > 0}" />
   </p:column>

   <!-- Some other columns for the persons -->

   <p:rowExpansion> <!-- See below --> </p:rowExpansion>
</p:datatable>
<p:rowExpansion>
   <p:datatable value="#{result.pets}" id="petsResultTable" var="petsResult" ...>
      <p:column filterBy="#{petsResult.name}">
         <h:outputText value="#{petsResult.name}"/>
   </p:datatable>
</p:rowExpansion>