一个ejb-ql的问题
我想用写一个ejb-ql来查询一个数据表中的记录。
对应的函数是这样的:
public Collection findByMonth(String theDay) throws
FinderException,RemoteException;
theDay是一个代表日期的字符串,一般的格式是:yearmonthday ,
例如 20040506 ,代表 2004 5月 6日。
我想通过在theDay参数中写入通配符的方法来检索出某个月的记录来。
例如:200405%
ejb-ql是这个样子的:select object(o) from calendar o where
o.theDay like '?1'
编译,打包,然后在jboss3.2.3上部署都成功了。
但是用客户端调用findByMonth("200405%")返回的集合总是空的。
(当然数据库里肯定有满足条件的记录)
查看log文件确实执行了查询。
2004-05-06 10:07:43,689 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.Cal
endarBean#findByMonth] Executing SQL: SELECT t0_o.theDay FROM CALENDARBEAN t0_o
WHERE (t0_o.theDay LIKE '?')
把ejb-ql改成select object(o) from calendar o where o.theDay like ?
部署失败,jboss说ejb-ql解析失败。
数据库用的是jboss带的hsql.
我想知道是现在的ejb-ql写的有问题,还是说ejb-ql的like子句根本就不支持这样的参数匹
配?
当然用bmp直接执行sql肯定ok了。
哪位给偶指点一二?