Problem description:
“I’m trying to apply a view criteria programmatically here. When the bind variable for “StartDate” (which is a VO attribute) uses just a “=”. then at runtime the VC gets appended to the query using a TO_DATE for the bind var, which is as expected. However, when the bind variable for “StartDate” uses just a “>=” / “<”>” . then at runtime the VC gets appended to the query using a TO_CHAR for the bind var, which is not that we require. Is there any way to get a TO_DATE for this kind of comparison as well?”
Please take a look at the following sample method :-
Sample query that appears at runtime :-
“I’m trying to apply a view criteria programmatically here. When the bind variable for “StartDate” (which is a VO attribute) uses just a “=”. then at runtime the VC gets appended to the query using a TO_DATE for the bind var, which is as expected. However, when the bind variable for “StartDate” uses just a “>=” / “<”>” . then at runtime the VC gets appended to the query using a TO_CHAR for the bind var, which is not that we require. Is there any way to get a TO_DATE for this kind of comparison as well?”
Please take a look at the following sample method :-
public Row getSampleHeaderVORecord(Date activeDate) { ViewObjectImpl SampleHeaderVO = getSampleHeader1(); ViewCriteria viewCriteria = SampleHeaderVO.createViewCriteria() ; ViewCriteriaRow vcr1 = viewCriteria.createViewCriteriaRow() ; vcr1.setAttribute("StartDate", ">="+(activeDate.)); viewCriteria.add(vcr1); SampleHeaderVO.applyViewCriteria(viewCriteria); SampleHeaderVO.executeQuery(); return SampleHeaderVO.next(); }
Sample query that appears at runtime :-
SELECT *WHERE ( ( (TO_CHAR( ForecastHeaderEO.START_DATE, 'yyyy-mm-dd') > '0007-04-02' ) ) )The TO_CHAR in the last line is what I’m referring to. Is there any way to get a TO_DATE there?
Solution:
ViewObjectImpl SampleHeaderVO = getSampleHeader1(); ViewCriteria viewCriteria = SampleHeaderVO.createViewCriteria() ; ViewCriteriaRow vcr1 = viewCriteria.createViewCriteriaRow() ; ViewCriteriaItem vci = vcr1.ensureCriteriaItem("StartDate"); vci.setOperator(JboCompOper.OPER_ON_OR_AFTER); vci.setValue(activeDate); viewCriteria.add(vcr1); SampleHeaderVO.applyViewCriteria(viewCriteria); SampleHeaderVO.executeQuery();
|
No comments:
Post a Comment