0
我正在使用JPA命名查詢來加載加載延遲加載的數據表。並設置如下所示的第一和最大結果。分頁不能用於首次加載的延遲加載數據表
Query query = entityManager.createNamedQuery("StudyplanCategory.findByStatusAndLimit");
int end=(start*pageNumber);
query.setParameter("status", status);
query.setParameter("start", start);
query.setParameter("end", end);
query.setMaxResults(end - start);
負載方法如下:
public List<StudyplanCategory> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters) {
List<StudyplanCategory> data = new ArrayList<StudyplanCategory>();
//System.out.println("Page First Value:"+first+"PageSize Value:"+pageSize);
datasource=categoryService.findDynaEditStudyPlan("NOT_USER_SPECIFIC",first,pageSize);
//filter
for(StudyplanCategory studyplanCategory : datasource) {
boolean match = true;
for(Iterator<String> it = filters.keySet().iterator(); it.hasNext();) {
try {
String filterProperty = it.next();
String filterValue = filters.get(filterProperty).toLowerCase();
String fieldValue = String.valueOf(studyplanCategory.getClass().getDeclaredField(filterProperty).get(studyplanCategory)).toLowerCase();
//System.out.println("fieldValue............."+fieldValue);
if(filterValue == null || fieldValue.startsWith(filterValue)) {
match = true;
}
else {
match = false;
break;
}
} catch(Exception e) {
match = false;
System.out.println("The Exception occured at"+e);
}
}
if(match) {
data.add(studyplanCategory);
}
}
//sort
if(sortField != null) {
Collections.sort(data, new LazySorter(sortField, sortOrder));
}
//rowCount
int dataSize = data.size();
this.setRowCount(dataSize);
//paginate
if(dataSize > pageSize) {
try {
return data.subList(first, first + pageSize);
}
catch(IndexOutOfBoundsException e) {
return data.subList(first, first + (dataSize % pageSize));
}
}
else {
return data;
}
}
但是,當加載表下一步按鈕處於非活動狀態,因爲我只加載加載第一頁所需的這些數據。我該如何解決這個問題。
你是否實現了'LazyDataModel'? – flash 2012-08-17 12:42:16
你在這裏發佈的代碼片段不是你以前的問題中的答案的代碼.. http://stackoverflow.com/questions/11650361/how-to-set-parameters-for-a-named-query/ 11650604#comment16014141_11650604此外,您還沒有包括實際與此問題相關的代碼:您調用jpa查詢(並可能覆蓋LazyDataModel方法)的託管bean代碼 – Damian 2012-08-17 13:09:03