浏览 4727 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-25
我们以从数据库里查询所有未打上删除标记的文章记录为例,第一种写法: find("from Article as t where t.delFlag = false"); 这种写法在sql server2000下是肯定不能运行的,但postgresql下可以; 再看第2种写法: find("from Article as t where t.delFlag = 0"); 这种写法在postgresql下肯定不行,但sql server2000下却可以; 第3种写法: find("from Article as t where t.delFlag = ?",false); 这种写法在postgresql下和sqlserver2000下都是可以的. 我们得出的结论是:不要在Hql里拼接字符串. 同时也期待新版本的Hibernate能有更好的容错能力. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-09-26
最后一种办法不是解决得很好吗?你还期望怎样更好的容错能力呢?
|
|
返回顶楼 | |
发表时间:2007-09-26
movingboy 写道 最后一种办法不是解决得很好吗?你还期望怎样更好的容错能力呢?
如果第一种和第二种也都正确不是更好吗? 难道第一种和第二种写法不应该正确吗? |
|
返回顶楼 | |
发表时间:2007-09-26
DavyLee 写道 movingboy 写道 最后一种办法不是解决得很好吗?你还期望怎样更好的容错能力呢?
如果第一种和第二种也都正确不是更好吗? 难道第一种和第二种写法不应该正确吗? 既然你要在SQL语句中使用依赖于数据库实现的boolean值,你可以写原生SQL语句,而不是HQL |
|
返回顶楼 | |
发表时间:2007-10-09
我也赞同movingboy的观点,第三种方法已经足够了。第一第二种方法这种不带参数的查询方式是不值得提倡的。
|
|
返回顶楼 | |