1)通过threadWorkUnit.setPrimaryId(saId);
public JobWork getJobWork() {
Query adjustmentUploadSAQuery = createQuery("from AdjustmentUpload au where au.serviceAgreementId != ' ' and au.adjustmentUploadStatus = 'P' ");
adjustmentUploadSAQuery.addResult("saId", "au.serviceAgreementId");
adjustmentUploadSAQuery.orderBy("saId");
adjustmentUploadSAQuery.groupBy("saId");
List threadWorkUnitList = new ArrayList();
for (Iterator iter = adjustmentUploadSAQuery.list().iterator(); iter.hasNext();) {
ServiceAgreement_Id saId = (ServiceAgreement_Id) iter.next();
ThreadWorkUnit threadWorkUnit = new ThreadWorkUnit();
logger.debug("Service Agreement Id " + saId.getIdValue() + " will be processed.");
threadWorkUnit.setPrimaryId(saId);
threadWorkUnitList.add(threadWorkUnit);
}
return createJobWorkForThreadWorkUnitList(threadWorkUnitList);
}
2)
public JobWork getJobWork() {
List workUnits = new ArrayList();
ThreadWorkUnit workUnit = new ThreadWorkUnit();
workUnits.add(workUnit);
return createJobWorkForThreadWorkUnitList(workUnits);
}
3)
public JobWork getJobWork() {
try {
validateSoftParameters();
validateAdjustmentStagingControls();
} catch (RunAbortedException e) {
parameterMessage = e.getServerMessage();
} catch (ApplicationError exception) {
parameterMessage = exception.getServerMessage();
}
String queryString = "FROM AdjustmentUpload as ap where ap.adjustmentUploadStatus = :adjStgUplStatus AND ap.adjustmentStagingControlID.adjustmentStagingControlStatus = :adjStgCtlStatus";
Query uploadQuery = createQuery(queryString);
uploadQuery.bindLookup("adjStgUplStatus", AdjustmentUploadStatusLookup.constants.PENDING);
uploadQuery.bindLookup("adjStgCtlStatus", AdjustmentStagingControlStatusLookup.constants.IN_PROGRESS);
return createJobWorkForEntityQuery(uploadQuery);
}
public boolean executeWorkUnit(ThreadWorkUnit unit) throws ThreadAbortedException, RunAbortedException
{
try
{
AdjustmentUpload_Id id = (AdjustmentUpload_Id)unit.getPrimaryId();
......
}
4)
public JobWork getJobWork() {
DefaultJobWork work = new DefaultJobWork();
DefaultThreadWork tw = new DefaultThreadWork();
tw.addThreadWorkUnit(new ThreadWorkUnit());
work.add(tw);
return work;
}