随笔-57  评论-129  文章-0  trackbacks-0
被一个貌似hsqldb bug的问题折磨了好几个小时。
把经过帖出来,大家帮我看看。

习惯把hql都写成预定义的形式,同时又为了避免过多的hql定义,我的惯用伎俩:通过如下方式定义hql。

 from Message
  
where packageKey=:packageKey
   
and ( null =  :fileKey or fileKey = :fileKey)
   
and ( null = :objectKey or objectKey= :objectKey)
   
and ( null = :memberKeys or memberKey in ( :memberKeys)) 


但是。今天在hqldb上测试时发现,在任何情况下 (null = ?)  都为真!!!
非常奇怪,害我调试了老半天,后来把数据库换成了mysql,ok!!

非常奇怪啊。
不过,上面的写法(null =  :fileKey)也有点怪怪的。
posted on 2007-10-18 22:31 金大为 阅读(775) 评论(2)  编辑  收藏 所属分类: Java

评论:
# re: 这是hsqldb的bug?还是自己的用法不对。 2007-10-19 08:42 | Tiger F
是否为null的语法应该用 is null 的吧  回复  更多评论
  
# re: 这是hsqldb的bug?还是自己的用法不对。 2007-10-19 20:08 | 金大为
@Tiger F
谢谢回复
hibernate 会翻译过去,这不是问题,就算你写成is null,情况依然。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: