1

早上好,

我正在将 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 部分,但到目前为止我不知道在哪里可以做到这一点。

抱歉有任何拼写错误,英语不是我的母语

谢谢。

4

0 回答 0