hql语句怎样修改
public List<TUser> getAllUsersByPage(TUser user, Pager pager) {String sql = "from TUser where groupId != 0";
if (user != null){
if (user.getUserName() != null && !user.getUserName().equals("")){
sql += " and userName like '%" + user.getUserName() +"%'";
}
}
if(user !=null){
if(user.getGroupId() !=null && !user.getGroupId().equals("")){
sql +=" and groupId = "+ user.getGroupId() +" ";
}
}
所报异常如下:
unexpected token: 2 near line 1, column 70 [from com.tcs.sysmanager.pojo.TUser where groupId != 0 and groupId in 2 ] --------------------编程问答-------------------- 参考一下
StringBuffer sql=new StringBuffer("from CstCustomer ct where 1=1");
if(ct.getCustNo()!=null){
if(!ct.getCustNo().equals("")){
sql.append(" and ct.custNo like :custNo");
}
}
if(ct.getCustName()!=null){
if(!ct.getCustName().equals("")){
sql.append(" and ct.custName like :custName");
}
}
if(ct.getCustRegion()!=null){
if(!ct.getCustRegion().equals("") && !ct.getCustRegion().equals("全部")){
System.out.println(ct.getCustRegion());
sql.append(" and ct.custRegion like :custRegion");
}
}
if(ct.getCustManagerName()!=null){
if(!ct.getCustManagerName().equals("")){
sql.append(" and ct.custManagerName like :custManagerName");
}
}
if(ct.getCustLevelLabel()!=null){
if(!ct.getCustLevelLabel().equals("") && !ct.getCustLevelLabel().equals("全部")){
sql.append(" and ct.custLevelLabel like :custLevelLabel");
}
}
--------------------编程问答-------------------- 我知道了
异常表示是不识别你写的那个SQL语句
String sql = "from TUser t where t.groupId != 0";
在后面的字段后面都加个t.试试 --------------------编程问答-------------------- != 改成 <>
另外, 你这里, '%" + user.getUserName() +"%'";
咋 感觉你的这个单引号是全角的一样 --------------------编程问答-------------------- hql没有!=符号只有<> --------------------编程问答--------------------
我同意二楼的看法,给表起一个逻辑名。 --------------------编程问答--------------------
正解
补充:Java , Web 开发