EJB-QL problem. max() statement.
scar Sep 8, 2002 7:12 AMHi.
I have a problem with ejb-ql statement.
I have entity-bean with finder findByShiftIdAndDate that consists:
select OBJECT(oshcd) from OsdShiftHourCorrection oshcd where oshcd.shiftIdFK = ?1 and (oshcd.year = (select max(oshcdy.year) from OsdShiftHourCorrection oshcdy where oshcdy.year<=?2))
When I deploy jar, I got next application error message:
2002-09-08 12:51:26,221 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.OsdShiftHourCorrection.findByShiftIdAndDate] EJB-QL: select OBJECT(oshcd) from OsdShiftHourCorrection oshcd where oshcd.shiftIdFK = ?1 and (oshcd.year = (select max(oshcdy.year) from OsdShiftHourCorrection oshcdy where oshcdy.year<=?2))
2002-09-08 12:51:26,251 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.parentTraceEnabled=true
2002-09-08 12:51:26,251 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.nestedTraceEnabled=true
2002-09-08 12:51:26,251 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.detectDuplicateNesting=true
2002-09-08 12:51:26,261 ERROR [org.jboss.ejb.EjbModule] Starting failed
org.jboss.deployment.DeploymentException: Error compiling ejbql; - nested throwable: (org.jboss.ejb.plugins.cmp.ejbql.ParseException: Encountered "= ( select" at line 1, column 99.
Was expecting one of:
")" ...
"+" ...
"-" ...
"*" ...
"/" ...
"=" "+" ...
"=" "-" ...
"=" <NUMERIC_VALUED_PATH> ...
"=" <INTEGER_LITERAL> ...
"=" <FLOATING_POINT_LITERAL> ...
"=" "(" "+" ...
"=" "(" "-" ...
"=" "(" <NUMERIC_VALUED_PATH> ...
"=" "(" <INTEGER_LITERAL> ...
"=" "(" <FLOATING_POINT_LITERAL> ...
"=" "(" "(" ...
"=" "(" <NUMERIC_VALUED_PARAMETER> ...
"=" "(" "LENGTH" ...
"=" "(" "LOCATE" ...
"=" "(" "ABS" ...
"=" "(" "SQRT" ...
"=" <NUMERIC_VALUED_PARAMETER> ...
"=" "LENGTH" ...
"=" "LOCATE" ...
"=" "ABS" ...
"=" "SQRT" ...
"NOT" ...
"BETWEEN" ...
)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.(JDBCEJBQLQuery.java:46)
...
Does that means I can't use MAX() oracle function in my ejb-ql statements?
I've been tried to set
<function-mapping>
<function-name>max</function-name>
<function-sql>max(?1)</function-sql>
</function-mapping>
in my standardjbosscmp-jdbc.xml file
but a result is the same: error message still exists.
Would you so kind to clear up me what i have to do to solve my problem?
Thanks a lot for advice.
Regards, Scar