我在进行条件组合查询的时候,刚开始使用sql语句实现的代码在下边,现在我想用hibernate的hql语句实现,

我在进行条件组合查询的时候,刚开始使用sql语句实现的代码在下边,现在我想用hibernate的hql语句实现,谁能帮我把下边的这段sql语句操作,改成用hql语句来实现... 我在进行条件组合查询的时候,刚开始使用sql语句实现的代码在下边,现在我想用hibernate的hql语句实现,谁能帮我把下边的这段sql语句操作,改成用hql语句来实现?
public class UserDaoImpl implements UserDao {
private QueryRunner qr=new QueryRunner(DBCPUtil.getDataSource());
public List<User> selectUser(User user) {
String sql="select * from user where 1=1 ";
List<String>argList=new ArrayList<String>();
if(user.getUsername()!=null&&user.getUsername().trim().length()>0){
sql+="and username like ?";
argList.add("%"+user.getUsername()+"%");
}if(user.getSex()!=null&&user.getSex().trim().length()>0){
sql+="and sex=?";
argList.add(user.getSex());
}if(user.getEducation()!=null&&user.getEducation().trim().length()>0){
sql+="and education=?";
argList.add(user.getEducation());
}if(user.getIsUpload()!=null&&user.getIsUpload().trim().length()>0){
if(user.getIsUpload().equals("1")){
sql+="and filename is not null";
}else if(user.getIsUpload().equals("2")){sql+="and filename is null";
}
}
try {
List<User>users=(List<User>)qr.query(sql,new BeanListHandler<User>(User.class),argList.toArray());
return users;
} catch (SQLException e) {
throw new RuntimeException();
}
}
}
展开
 我来答
匿名用户
2013-08-31
展开全部
String hql="select u.* from User u where 1=1 ";

List<String>argList=new ArrayList<String>();
List<org.hibernate.type.Type>typList=new ArrayList<org.hibernate.type.Type>();

if(user.getUsername()!=null && user.getUsername().trim().length()>0){
hql+="and u.username like ?";
argList.add("%"+user.getUsername()+"%");
typList.add(Hibernate.STRING)
}

if(user.getSex()!=null && user.getSex().trim().length()>0){
hql+="and u.sex=?";
argList.add(user.getSex());
typList.add(Hibernate.STRING)
}

if(user.getEducation()!=null&&user.getEducation().trim().length()>0){
hql+="and u.education=?";
argList.add(user.getEducation());
typList.add(Hibernate.STRING)
}

if(user.getIsUpload()!=null && user.getIsUpload().trim().length()>0){
if(user.getIsUpload().equals("1")){
hql+="and u.filename is not null";
}else if(user.getIsUpload().equals("2")){
hql+="and u.filename is null";
}
}

List<User>users=session.createQuery(hql)
.setParameters(argList.toArray(), typList.toArray())
.list();

请参考
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式