hibernateのhql文の生成をカプセル化するためにクラスを自分で書いた.
4905 ワード
毎日hqlを書くのは少し面倒で、自分でhqlを生成するためのツールクラスを書きました:HqlHelperその具体的なコードは以下の通りです:
使用方法(完全な非同期取得データの例であり、PageUtilはページパッケージのクラスである):
実はhibernate自体はhqlを使わないクエリークラスCriteriaを提供していますが、興味があれば自分で勉強することができます.私は先入観があり、自分で書いたものが好きです.状況を見てみましょう.
/**
* HQL
* @author cjd
*/
public class HqlHelper {
private String name;
private String hql = "";
private String where = "";
private String order = "";
private List
使用方法(完全な非同期取得データの例であり、PageUtilはページパッケージのクラスである):
@RequestMapping(value = "/contentList.do")
public Object jkHomeContentList(HttpServletRequest request,HttpServletResponse response,Integer rows,Integer page,String sort,String order)throws Exception {
HqlHelper hqlHelper = new HqlHelper(TContent.class, "c");
PageUtil pageUtil = new PageUtil(rows,page);
String en_name = request.getParameter("en_name");
String zh_name = request.getParameter("zh_name");
if(en_name==null || en_name.length()==0){
hqlHelper.addCondition("c.en_name like ?", "jk_index_%");
}else{
hqlHelper.addCondition("c.en_name = ?", en_name);
}
if(zh_name!=null && zh_name.trim().length()>0){
hqlHelper.addCondition("c.zh_name like ?", "%"+zh_name.trim()+"%");
}
if(sort!=null){
hqlHelper.addOrder(sort, order);
}
hqlHelper.addOrder("c.en_name",true);
hqlHelper.addOrder("c.position_id", true);
commonService.listByHqlHelper(hqlHelper,pageUtil);
JSONObject result = JSONObject.fromObject(pageUtil);
response.getWriter().write(result.toString());
return null;
}
実はhibernate自体はhqlを使わないクエリークラスCriteriaを提供していますが、興味があれば自分で勉強することができます.私は先入観があり、自分で書いたものが好きです.状況を見てみましょう.