3

複数の並べ替えでLazyDataModelを使用すると、NullPointerExceptionが発生します。sortMode = "multiple"を使用している場合、loadメソッドは属性ListmultiSortMetaでnull値を取ります

私のxhtml

<h:panelGroup id="processPanel">
            <p:dataTable id="processTable" value="#{hubProcessBean.processModel}"
                var="process" paginator="true" paginatorAlwaysVisible="false"
                 rows="5" lazy="true" sortBy="#{process.transactionId}" sortOrder="ascending" rows="5" lazy="true" sortMode="multiple" resizableColumns="true">

そして私が呼んでいる豆の中で

processModel_ = new TransactionLazyDataModel(criteria);

私のLazyDataModelは

@Override
    public List<Transaction> load(int first, int pageSize, List<SortMeta> multiSortMeta, Map<String,String> filters) {
        try {
            HibernateUtil.beginTransaction();
            transactionList = transactionHome.loadByCriterion(criterias_,first, pageSize, multiSortMeta);
            for (Transaction tr : transactionList) {
                Hibernate.initialize(tr.getAgency());
                Hibernate.initialize(tr.getClient().getId().getClientName());
                Hibernate.initialize(tr.getDecisionrule().getId());
                //Hibernate.initialize(tr.getEscalationhistory().getEscalationtype().getEscalationTypeId());
                Hibernate.initialize(tr.getUserByBuyer());
                //Hibernate.initialize(tr.getDecisionrule().getId());
            }
            HibernateUtil.commitTransaction();
4

1 に答える 1

1

マルチソートは sortMeta オブジェクトで動作しています

于 2013-03-16T17:55:13.540 に答える