0
我有这个查询,我写了一个DAL为基本上运行搜索条件,如果找到,将其添加到列表。但我遇到的问题是根据字段对列表进行排序。如何使用比较器对集合中的多个字段进行排序?
例如,
select * from HELLO.TABLE Where total=? and max = ?
ORDER BY FRLevel DESC, TransferLevel DESC, PriorLimitsLevel DESC
如何使用比较这些字段进行排序。这是我的Java代码,
public List<PgmTierCriteriaVO> getCriteriaListForAL(DriverVO driverVO,
String productType, PolicyVersionVO policyVersionVO, String rateDate)
throws Exception {
String pgmCode = driverVO.getPgmCode().trim();
String versionType = policyVersionVO.getVersionType().trim();
String pgmCodeShort = pgmCode.substring(0, 5);
PgmTierCriteriaID pgmTierCriteriaID = new PgmTierCriteriaID();
pgmTierCriteriaID.setPgmCode(pgmCode);
List<PgmTierCriteriaVO> pgmCriteriaVOList = pgmPayPlanService
.getPgmTierCriteriaList(pgmTierCriteriaID);
List<PgmTierCriteriaVO> pgmCriteriaVOListAL = new ArrayList<PgmTierCriteriaVO>();
if (productType != null && rateDate != null) {
if (productType.equalsIgnoreCase("PPA")) {
for (PgmTierCriteriaVO pgmTierCriteriaVO : pgmCriteriaVOList) {
if (pgmTierCriteriaVO.getAppliesToCode() != null) {
if ((StringUtil.getDate(rateDate).after(pgmTierCriteriaVO.getEffDate())
|| StringUtil.getDate(rateDate).equals(pgmTierCriteriaVO.getEffDate()))
&& StringUtil.getDate(rateDate).before(pgmTierCriteriaVO.getExpDate())
&& (pgmTierCriteriaVO.getAppliesToCode().trim().equalsIgnoreCase("B")
|| pgmTierCriteriaVO.getAppliesToCode().trim().equalsIgnoreCase(versionType))) {
pgmCriteriaVOListAL.add(pgmTierCriteriaVO);
} else {
pgmCriteriaVOListAL = null;
}
}
}
}
else if (productType.equalsIgnoreCase("CV")) {
for (PgmTierCriteriaVO pgmTierCriteriaVO : pgmCriteriaVOList) {
if (pgmTierCriteriaVO.getAppliesToCode() != null) {
if ((StringUtil.getDate(rateDate).after(pgmTierCriteriaVO.getEffDate())
|| StringUtil.getDate(rateDate).equals(pgmTierCriteriaVO.getEffDate()))
&& StringUtil.getDate(rateDate).before(pgmTierCriteriaVO.getExpDate())
&& pgmCodeShort.equalsIgnoreCase(pgmTierCriteriaVO.getPgmCode().substring(0, 5))
&& (pgmTierCriteriaVO.getAppliesToCode().trim().equalsIgnoreCase("B")
|| pgmTierCriteriaVO.getAppliesToCode().trim().equalsIgnoreCase(versionType))) {
pgmCriteriaVOListAL.add(pgmTierCriteriaVO);
} else {
pgmCriteriaVOListAL = null;
}
}
}
}
}
return pgmCriteriaVOListAL;
}
我需要返回排序的列表,而不是只是列表。