我正在尝试加载带有分页和排序的数据表。使用 ExtendedDataModel 和 Arrangeable 来实现这一点,它工作正常。然后我添加了 Phase Listener 来检查行为并注意到
1. Pagination 工作正常,只有一个 DB Hit。
2. 但是,虽然 Sorting DB Hit 发生了两次,第一次在第 2 阶段,第二次在第 6 阶段。
另请注意,如果我没有立即 =“true”,则 DB HIT 在第 2、3、4 和 6 阶段各发生 4 次。
我不确定为什么会这样。你能帮忙吗?
xhtml 片段
<rich:column sortBy="#{item.busName}" sortOrder="#{sortBean.order}">
<f:facet name="header">
<a4j:commandLink value="BUSINESS NAME" action="#{sortBean.sortByBus}" immediate="true"
render="riskData" />
</f:facet>
<h:outputText value="#{item.busName}">
</h:outputText>
</rich:column>
<rich:column sortBy="#{item.regionName}" sortOrder="#{sortBean.orderRegion}">
<f:facet name="header">
<a4j:commandLink value="REGION NAME"
action="#{sortBean.sortByRegion}" immediate="true"
render="riskData" />
</f:facet>
<h:outputText value="#{item.regionName}">
</h:outputText>
</rich:column>
----------带有SYSOUTS的阶段监听器日志----------
具有未排序值的页面初始视图只有一个 DB HIT 来获取数据###
START PHASE RESTORE_VIEW 1
END PHASE RESTORE_VIEW 1
START PHASE RENDER_RESPONSE 6
Get Sort -> Order business -> unsorted
Get Sort -> Order region -> unsorted
Get Sort -> Order PolicyDt -> unsorted
Arrange Not Available
Total Count DB HIT
Data Creation
Get Sort -> Order business -> unsorted
Get Sort -> Order region -> unsorted
Get Sort -> Order PolicyDt -> unsorted
Arrange Not Available
Walk -> Start
DB HIT
First -> 0Last -> 3
Before Sort -> [com.entity. BusItem@514cef, com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8] SortList
之前
排序后 -> [com.entity.BusItem@514cef, com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8]
步行 -> 结束
END PHASE RENDER_RESPONSE 6
BusinessName Unsorted Ascending Sort 有两个 DB HIT -> Phase2 中的第一个和 Phase 6 中的第二个 ###
START PHASE RESTORE_VIEW 1
END PHASE RESTORE_VIEW 1
START PHASE APPLY_REQUEST_VALUES 2
Get Sort -> Order business -> unsorted
Get Sort -> Order region -> unsorted
Get Sort -> Order PolicyDt -> unsorted
Arrange Not Available
Walk -> Start
DB HIT
First - > 0Last -> 3
排序前 -> [com.entity.BusItem@514cef, com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8] SortList
前 排序
后 -> [com.entity.BusItem@514cef, com .entity.BusItem@1921eac, com.entity.BusItem@1bcdc8]
步行 -> 结束
排序业务 -> 切换 -> 降序到升序
集排序 -> 订单业务 -> 升序
集排序 -> 订单 PolicyDt ->未分类
Set Sort -> Order region -> unsorted
END PHASE APPLY_REQUEST_VALUES 2
START PHASE RENDER_RESPONSE 6
Get Sort -> Order business ->升序
Get Sort -> Order region -> unsorted
Get Sort -> Order PolicyDt -> unsorted
Arrange Available
/test.xhtml @53,74 sortBy="#{item.busName}"ascending
获取排序 -> 订单业务 -> 升序
获取排序 -> 订单区域 -> 未排序
获取排序 -> 订单 PolicyDt -> 未排序
可用
/test.xhtml @53 ,74 sortBy="#{item.busName}"ascending
Walk -> Start
DB HIT
First -> 0Last -> 3
Before Sort -> [com.entity.BusItem@514cef, com.entity.BusItem@1921eac,com.entity.BusItem@1bcdc8]
在SortList 之前 排序
之后 -> [com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8, com.entity.BusItem@514cef]
步行 -> 结束
END PHASE RENDER_RESPONSE 6
BusinessName 升序到降序 -> 在 Phase2 中有两个 DB HIT,第 2 个在 Phase2 ###
START PHASE RESTORE_VIEW 1
END PHASE RESTORE_VIEW 1
START PHASE APPLY_REQUEST_VALUES 2
获取排序 -> 订单业务 -> 升序
获取排序 -> 订单区域 -> 未排序
获取排序 -> 订单 PolicyDt -> 未排序
可用
/test.xhtml @53,74 sortBy ="#{item.busName}"ascending
Walk -> Start
DB HIT
First -> 0Last -> 3
Before Sort -> [com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8, com.entity.BusItem@ 514cef]排序
前SortList
后排序 -> [com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8, com.entity.BusItem@514cef]
Walk -> End
Sort Business -> Toggle -> Ascending to Descending
Set Sort - >订单业务 -> 降序
Set Sort -> Order PolicyDt -> unsorted
Set Sort -> Order region -> unsorted
END PHASE APPLY_REQUEST_VALUES 2
START PHASE RENDER_RESPONSE 6
Get Sort -> Order business -> descending
Get Sort -> Order region -> unsorted
Get Sort -> Order PolicyDt -> unsorted
Arrange Available
/test.xhtml @53,74 sortBy="#{item.busName}"descending
Get Sort -> Order business -> descending
Get Sort -> Order region -> unsorted
Get Sort -> Order PolicyDt -> unsorted
Arrange Available
/test.xhtml @53,74 sortBy="#{item.busName}"descending
Walk -> Start
DB HIT
First -> 0Last -> 3
排序前 -> [com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8, com.entity.BusItem@514cef] SortList
前 排序
后 -> [com.entity.BusItem@514cef, com.entity.BusItem@ 1921eac,com.entity.BusItem@1bcdc8]
步行 -> 结束
END PHASE RENDER_RESPONSE 6
删除立即数,然后对业务名称进行排序,在 Phase2、3、4 和 6 中各有四个 DB HIT
START PHASE RESTORE_VIEW 1
END PHASE RESTORE_VIEW 1
START PHASE APPLY_REQUEST_VALUES 2
Get Sort -> Order business -> unsorted
Get Sort -> Order region -> unsorted
Get Sort -> Order PolicyDt -> unsorted
Arrange Not Available
Walk -> Start
DB HIT
First - > 0Last -> 3
排序前 -> [com.entity.BusItem@514cef, com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8] SortList
前 排序
后 -> [com.entity.BusItem@514cef, com .entity.BusItem@1921eac, com.entity.BusItem@1bcdc8]
Walk -> End
END PHASE APPLY_REQUEST_VALUES 2
START PHASE PROCESS_VALIDATIONS 3
Walk -> Start
DB HIT
First -> 0Last -> 3
排序前 -> [com.entity.BusItem@514cef, com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8] SortList
前 排序
后 -> [com.entity.BusItem@514cef, com.entity.BusItem@ 1921eac,com.entity.BusItem@1bcdc8]
步行 -> 结束
END PHASE_VALIDATIONS 3
开始阶段 UPDATE_MODEL_VALUES 4
步行 -> 首先开始
DB HIT
-> 0Last -> 3
排序前 -> [com.entity.BusItem@514cef,com. entity.BusItem@1921eac, com.entity.BusItem@1bcdc8]排序
前SortList 排序
后 -> [com.entity.BusItem@514cef, com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8]
步行 -> 结束
END PHASE UPDATE_MODEL_VALUES 4
开始阶段 INVOKE_APPLICATION 5
Sort Region-> Toggle -> Descending to Ascending
Set Sort -> Order region -> ascending
Set Sort -> Order business -> unsorted
Set Sort -> Order PolicyDt -> unsorted
END PHASE INVOKE_APPLICATION 5
START PHASE RENDER_RESPONSE 6
Get Sort -> Order业务 -> 未排序
获取排序 -> 订单区域 -> 升序
获取排序 -> 订单 PolicyDt -> 未排序
可用
/footer.xhtml @62,83 sortBy="#{item.regionName}"ascending
获取排序 -> 订单业务 - > unsorted
获取排序 -> 排序区域 -> 升序
获取排序 -> Order PolicyDt -> unsorted
Arrange Available
/footer.xhtml @62,83 sortBy="#{item.regionName}"升序
步行 -> 开始
DB HIT
First -> 0Last -> 3
Before Sort -> [com.entity.BusItem@514cef, com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8]
在SortList 之前 排序
之后 -> [com.entity.BusItem @514cef, com.entity.BusItem@1921eac, com.entity.BusItem@1bcdc8]
步行 -> 结束