早上好,
我正在将EJB 2.1项目从JBoss AS5迁移到AS7,我遇到了一些麻烦。该项目包含几个定义的EJB查询,其中一些不起作用,例如:
<query>
<query-method>
<method-name>findByIdOwnershipMaxYear</method-name>
<method-params>
<method-param>java.lang.Long</method-param>
</method-params>
</query-method>
<ejb-ql>SELECT OBJECT(o) FROM OwnershipHistory o WHERE o.id = ?1 and o.year = ( select max(oh.year) from OwnershipHistory oh where oh.id = ?1)</ejb-ql>
</query>
所有查询都在每个模块的 ejb-jar.xml 文件中声明。当我启动JBoss时,带有子查询的那些(如上所述)总是给出org.jboss.as.cmp.ejbql.ParseException:
Encountered " "SELECT" "select "" at line 1, column 73.
Was expecting one of:
"ABS" ...
"LENGTH" ...
"LOCATE" ...
"SQRT" ...
"MOD" ...
"(" ...
"+" ...
"-" ...
<INTEGER_LITERAL> ...
<FLOATING_POINT_LITERAL> ...
<NUMERIC_VALUED_PARAMETER> ...
<NUMERIC_VALUED_PATH> ...
我怀疑,在以前的版本中,我可以在 standardjbosscmp-jdbc.xml 文件中执行“子查询支持”配置;有谁知道AS7上是否仍有可能?
我看了datasource configuration guide和DD section,但到目前为止我无法弄明白我能做到的地方。
抱歉任何拼写错误,英语不是我的母语
感谢。