Hibernate 使用SQL查询生成Entity对象
昨天项目中有几个比较复杂的查询 ,故使用了createSQLQuery方法。
以前用它调用SQL语句进行查询,返回List<Object[]>,然后我在Action里一个一个的set语句生成Entity对象,那个累就不用说了。昨天朋友告诉我,Hibernate可以给我生成Entity对象,试了下果然好用,故我也贴出来。万分感谢。
一:直接使用SQLQuery的addEntity方法
SQLQuery query = this.session.createSQLQuery(sql).addEntity(DbCourse.class);query.setString("courseId", courseId);List retList = query.list();
try { SQLQuery query = this.session.createSQLQuery(sql); //返回一个map,KEY:为DB中名称一致(大小写一致) query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); query.setString("courseId", courseId); getList = query.list(); if (null != retList) { Map recMap = null; DbCourse course = null; for (int i = 0; i < getList.size(); i++) { recMap = (Map)getList.get(i); course = new DbCourse(); BeanUtils.populate(course, recMap);//对象组装 retList.add(course); } }} catch (Exception e) {}