早上好,
我正在将 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> ...
我的疑问是,在以前的版本中,我可以在标准 jbosscmp-jdbc.xml文件中进行“支持子查询”的配置;有谁知道这在AS7上是否仍然可行?
我查看了数据源配置指南和DD 部分,但到目前为止我不知道在哪里可以做到这一点。
抱歉有任何拼写错误,英语不是我的母语
谢谢。