浏览 449 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-01-08 关键字: hibernate
//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+"%"));
}
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |


