java criteria exist_Java Criteria.addExists方法代碼示例
import org.apache.ojb.broker.query.Criteria; //導入方法依賴的package包/類
/**
* @see org.kuali.kfs.module.bc.document.dataaccess.BudgetConstructionLockDao#getOrphanedPositionLocks(java.lang.String)
*/
public List getOrphanedPositionLocks(String lockUnivId) {
Criteria criteria = new Criteria();
if (StringUtils.isNotBlank(lockUnivId)) {
criteria.addEqualTo(BCPropertyConstants.POSITION_LOCK_USER_IDENTIFIER, lockUnivId);
}
else {
criteria.addNotNull(BCPropertyConstants.POSITION_LOCK_USER_IDENTIFIER);
}
ReportQueryByCriteria query = QueryFactory.newReportQuery(BudgetConstructionPosition.class, criteria);
query.addOrderByAscending(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR);
query.addOrderByAscending(BCPropertyConstants.POSITION_NUMBER);
List allPositionLocks = (List) getPersistenceBrokerTemplate().getCollectionByQuery(query);
List orphanedPositionLocks = new ArrayList();
for (BudgetConstructionPosition position : allPositionLocks) {
Criteria criteria2 = new Criteria();
criteria2.addEqualTo(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR, position.getUniversityFiscalYear());
criteria2.addEqualTo(BCPropertyConstants.POSITION_NUMBER, position.getPositionNumber());
Criteria subCrit = new Criteria();
subCrit.addEqualToField(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR, Criteria.PARENT_QUERY_PREFIX + KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR);
subCrit.addEqualToField(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, Criteria.PARENT_QUERY_PREFIX + KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE);
subCrit.addEqualToField(KFSPropertyConstants.ACCOUNT_NUMBER, Criteria.PARENT_QUERY_PREFIX + KFSPropertyConstants.ACCOUNT_NUMBER);
subCrit.addEqualToField(KFSPropertyConstants.SUB_ACCOUNT_NUMBER, Criteria.PARENT_QUERY_PREFIX + KFSPropertyConstants.SUB_ACCOUNT_NUMBER);
subCrit.addEqualTo(BCPropertyConstants.APPOINTMENT_FUNDING_LOCK_USER_ID, position.getPositionLockUserIdentifier());
ReportQueryByCriteria subQuery = QueryFactory.newReportQuery(BudgetConstructionFundingLock.class, subCrit);
subQuery.setAttributes(new String[] { "1" });
criteria2.addExists(subQuery);
List appointmentFundingLocks = (List) getPersistenceBrokerTemplate().getCollectionByQuery(QueryFactory.newQuery(PendingBudgetConstructionAppointmentFunding.class, criteria2));
if (appointmentFundingLocks == null || appointmentFundingLocks.isEmpty()) {
orphanedPositionLocks.add(position);
}
}
return orphanedPositionLocks;
}
總結
以上是生活随笔為你收集整理的java criteria exist_Java Criteria.addExists方法代碼示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常见的Java审计代码函数关键字_转载:
- 下一篇: “加敬览枌榆”上一句是什么