Hibernate查询结果转换为实体类型 (HQL/SQL)
2014-03-31 17:13
399 查看
在使用Hibernate时,大部分情况使用HQL直接得到的就是实体了,但有时你或许要用到自定义实体的转换,可以参考如下
1.POJO实体
2.普通JavaBean(非HibernatePOJO实体)
注:示例中addScalar及setResultTransformer很关键,我在使用的时候还报了一个错(原因是在实体中需要有一个无参构造函数)
3.返回多个实体
1.POJO实体
session.createSQLQuery(queryString.toString()).addEntity(实体.class);
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) at org.hibernate.hql.HolderInstantiator.instantiate(HolderInstantiator.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名称。(本例来自网络)
相关文章推荐
- Hibernate(HQL/SQL)查询结果(Object)转换为实体类型
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
- Hibernate使用SQL查询返回实体类型
- Hibernate应用SQL查询返回实体类型
- hibernate下hql与sql查询结果的问题
- Hibernate多条件查询以及与java+sql 之间数据类型转换关系
- hibernate使用本地sql语句查询,解决List<Object[]>转换成List<实体>
- Hibernate SQLQuery 查询Oracle char类型结果为一个字符的解决方法
- Hibernate原生SQL查询数据转换为HQL查询数据方法
- hibernate HQL查询以及原生SQL查询参数类型的区别
- sql hibernate查询转换成实体或对应的VO Transformers
- 在hibernate中,如何把原生sql查询出来的结果映射到实体bean
- Hibernate使用SQL查询返回实体类型
- Hibernate使用SQL查询返回实体类型
- 类型:。net;问题:HQL;结果:HQL: Hibernate查询语言
- 关于Column '*' not found 解决方案 Hibernate使用SQL查询返回实体类型,即返回某个类,或实体类
- Hibernate使用sql语句查询,返回实体类型的方法及注意事项
- 关于Column '*' not found 解决方案 Hibernate使用SQL查询返回实体类型,即返回某个类,或实体类
- Hibernate3.2.6 原生sql 查询使用方法,将查询结果直接转换为POJO,不必非要指定属性大写