1.POJO实体
session.createSQLQuery(queryString.toString()).addEntity(实体.class);
或者
Query query = session.createSQLQuery(sql.toString())
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<实体> leaderManagerList = (List<实体>) query.list();
2.普通JavaBean(非HibernatePOJO实体)
SQLQuery query = session.createSQLQuery("select vg189.gdname busiType,ob.tel busiNo,ob.order_number orderNo,ob.create_time ctime");
query.addScalar("busiType", Hibernate.STRING)
.addScalar("busiNo", Hibernate.STRING)
.addScalar("orderNo", Hibernate.STRING)
.addScalar("ctime", Hibernate.STRING);
query.setResultTransformer(Transformers.aliasToBean(实体.class));
return query.list();
注:示例中addScalar及setResultTransformer很关键,我在使用的时候还报了一个错(原因是在实体中需要有一个无参构造函数)
org.springframework.orm.hibernate3.HibernateSystemException: Could not instantiate resultclass: com.yysoft.ecss.eshop.webservice.imp.model.OrderMd; nested exception is org.hibernate.HibernateException: Could not instantiate resultclass: com.yysoft.ecss.eshop.webservice.imp.model.OrderMd
Caused by: org.hibernate.HibernateException: Could not instantiate resultclass: com.yysoft.ecss.eshop.webservice.imp.model.OrderMd
at org.hibernate.transform.AliasToBeanResultTransformer.transformTuple(AliasToBeanResultTransformer.java:69)
3.返回多个实体
session.createSQLQuery("SELECT {cat.*}, {mother.*} FROM CATS c, CATS m WHERE c.MOTHER_ID = c.ID")
.addEntity("cat", Cat.class)
.addEntity("mother", Cat.class)
{cat.*}中的cat,既为addEntity里面的cat名称。