浏览 3320 次
锁定老帖子 主题:hibernate中 转义查询处理
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-08
//posi 获取搜索条件中 "_" 的位置 //searchText 页面搜索条件值 int posi = -1; posi = searchText.trim().indexOf("_"); //构造查询条件 DetachedCriteria deCriteria=DetachedCriteria.forClass(PubStru.class); //组织类型 deCriteria.add(Restrictions.eq("pubStruType.dataId", typeId)); //顶级组织不用判断下级,非顶级组织,搜索组织需在其上级组织的包含中 if(!struId.equals("corp0000") && getAllStruIds(struId).size() > 0) { deCriteria.add(Restrictions.in("struId", getAllStruIds(struId))); } //如果查询条件包含"_",需对其进行转义 escape '/' if(posi == 0) { searchText = "/_"+searchText.substring(posi+1,searchText.length()); deCriteria.add(Restrictions.sqlRestriction("lower({alias}.stru_alias) like lower(?) escape '/'", "%"+searchText+"%", Hibernate.STRING)); }else if(posi > 0 ) { searchText = searchText.substring(0,posi)+"/_"+searchText.substring(posi+1, searchText.length()); deCriteria.add(Restrictions.sqlRestriction("lower({alias}.stru_alias) like lower(?) escape '/'", "%"+searchText+"%", Hibernate.STRING)); }else { deCriteria.add(Restrictions.ilike("struAlias", "%"+searchText+"%")); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |