求教一个关于hql查询的问题?

来源:百度知道 编辑:UC知道 时间:2024/07/03 10:07:48
有一个实例Project的一个字段name,如果我想查询所有含有关键字a的记录,如下:
select pj from Project as pj where pj.name = 'a'

现在我想查询同时含有关键字a b c(以空格分隔)的所有记录该如何写比较简单呢?

还有,如果输入的关键字数目不定,也可能是a b c d e等,又如何写呢?

谢谢!
hql本身没有实现这种查询的语句马?1楼的方法好像太麻烦了,二楼的方法 我还不太会呢

首先
select pj from Project as pj where pj.name = 'a'
就是错误的
因该用 Like

至于多条件查询
只能用 文本 拼凑的方法
or 了

这个问题好解决 你可以想sqlserver那样使用"?"作为占位符

String hql="select pj from Project as pj where pj.name like ?"

在通过Query对象的setString给参数赋值:

query.setString(0,"%"+参数+"%") 例如:方法的参数是name name="abc"

写的时候就写:query.setString(0,"%"+name+"%")

那么运行时就会变成:query.setString(0,"%abc%")