一个ejb-ql的问题

ijk1981 2004-05-06 10:57:22
我想用写一个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了。

哪位给偶指点一二?
...全文
123 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangk 2004-05-07
  • 打赏
  • 举报
回复
确实有点奇怪!
你把'?1'的引号去掉看看怎么样?
panda00 2004-05-07
  • 打赏
  • 举报
回复
我跟你遇到的问题差不多,而且一直到现在也没有解决,不知道为什么查询之后返回的结果就是null,高手不知道哪里去了哦,帮帮忙啊!
minghuitian 2004-05-06
  • 打赏
  • 举报
回复
gz

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧