在多表查询的时候使用hibernate的sql查询的时候,一般返回的是object[]数组,或者可以使用
session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
来转化为map来进行处理,可以通过以下方式将查询结果转化为实体类:
1,sql语句 String sql="select s.id as id,s.classname as classname from grade s,student st where s.id=st.classid"
利用以下语句
session.createSQLQuery(sql) .setResultTransformer(Transformers.aliasToBean(Grade.class))可以将sql中查询出来的字段转化为班级这个实体类,但是必须为每个字段指定别名,别名就是班级类里面的对应的属性,但必须注意,对每一个列都必须addScalar("列名"),如果不设置addScalar方法可能会报转型错误的异常.如果查询的结果里面包括多个表里面的字段,不能对应一个实体类去接受,就需要新建一个与查询结果对应的实体类,或者直接使用map结果集
2,sql语句 String sql="select {s.*} from grade s,student st where s.id=st.classid"
针对这样的全部字段查询的sql可以利用addEntity来转化为实体类
SQLQuery query=session.createSQLQuery(sql) ;
query.addEntity("s", Grade.class);
SQL查询语句,它带一个占位符,可以让Hibernate使用字段的别名.
查询返回的实体,和它的SQL表的别名.
addEntity()方法将SQL表的别名和实体类联系起来,并且确定查询结果集的形态。
这样就可以将班级这张表里面的所有字段的值赋值给班级这个实体类java培训机构排名,而且必须是所有的属性
3,sql语句 String sql="select {s.*},{st.*} from grade s,student st where s.id=st.classid"
SQLQuery query=session.createSQLQuery(sql) ;
query.addEntity("s", Grade.class);
query.addEntity("st", Student.class);
利用这样的查询得到的是一个object[]数组,object[0]就是班级实体类,object[1]就是学生实体类
可以用addScalar(String arg,Type type)方法定义要返回的字段类型,如
s.createSQLQuery(shuiQingHQL).addScalar("STCD",Hibernate.STRING).addScalar("STNM")
相关推荐
Hibernate 实体类 注解及功能说明。
hibernate实现动态SQL查询,通过XML配置SQL,FREEMARKER 解析,生成要执行的SQL
Hibernate SQLQuery 查询Oracle char类型结果为一个字符解决方法 Hibernate SQLQuery 查询Oracle char类型结果为一个字符解决方法 Hibernate SQLQuery 查询Oracle char类型结果为一个字符解决方法 Hibernate SQL...
自动生成hibernate映射文件和实体类
通过hibernate插件 直接将实体类 映射生成对应的数据库表
教你如何用Hibernate生成映射文件和实体类,简单方便。
hibernate@注解方式配置实体类时,利用javadoc接口生成数据库表及字段的注释说明,支持oracle、sqlserver、db2、mysql数据库。因用到java\lib\tools.jar,需要将该jar放入工程lib下(或者tomcat\lib下、或加入...
此文本是简洁明了介绍怎么使用hibernate生成实体类的,这是本人的小小的经验
Hibernate 函数 ,子查询 和原生SQL查询。Hibernate 函数 ,子查询 和原生SQL查询
统一管理SessionFactory,分散注册实体类。平台依赖度低的解决方案 详细介绍见http://blog.csdn.net/flyxxxxx 测试环境:equinox3.5.2。其它用到的Bundle包括hibernate、hibernate-annotation、hsqldb、 spring、...
根据实体类生成简单的Hibernate映射文件,对不用Myeclipse的童鞋还是有用
Hibernate+本地SQL查询SQLQuery宣贯.pdf
使用Hibernate工具生成实体类..........
使用本地sql语句查询后,无需再使用Object对查询结果进行强制转换,而是直接将查询结果放到实体Bean里了。 PS: 其实只有一版,这里只所以叫最终版是因为该附件我上传了好几天传不上去,到最后报告说‘资源已经存在...
自己根据课本总结的使用hibernate时,实体类间映射文件即*.hbm.xml文件的写法。如果你正在学习hibernate,保证会对你有所帮助。
可以根据数据库中的表生成hibernate实体类,需要自己修改jdbc.properties配置文件。
Myeclipse自动生成Hibernate配置文件及实体类映射ORM配置文件--hibernate方式
Hibernate连表查询 Hibernate连表查询
hibernate将本地SQL查询结果封装成对象。如进行复杂的统计等本地sql语句查询后,直接放到对象里了,而不会再使用Object进行强转
已经建立好了数据库对应的实体类,打开之后直接在项目中练习查询就行。Hibernate和JPA方式都有了。 项目需求: 1. jdk8(因为用到了lambda表达式)。 2. Eclipse或者IDEA开发环境,推荐IDEA,因为我就是用IDEA做的...