hibernate用setResultTransformer转换

  当你用hibernate查出数据,但是类型不是原来的类型怎么办,新增的实体类还可以用,query.setResultTransformer(Transformers.aliasToBean(AA.class));这种形式可以解决查出来的数据不能使用的问题.

String sql = "select USER_ID,USERNAME from test where USER_ID= :id";
        Query query = getCurrentSession().createSQLQuery(sql);//.addScalar("MODULE_ID", LongType.INSTANCE);
        query.setBigDecimal("id", new BigDecimal("1"));
        query.setResultTransformer(Transformers.aliasToBean(UserEntity.class));
        List<UserEntity> list=null;
        list=query.list();
        return list;  

  注意:

  (1)这种转换实体类很严格,必须连属性名字要和数据库字段高度一致(注解此时没很大作用用. 
    (2)实体类可以比表字段少一些字段.

时间: 2024-11-12 03:42:29

hibernate用setResultTransformer转换的相关文章

毕设问题(2) fastjson 的过滤器使用(SSH hibernate)以及转换对象出现 $ref

毕业设计,用SSH框架,但是想要做出异步请求数据的效果,使用了ajax方式,其中数据传递的类型为json.ajax使用用的jQuery的ajax.其实struts里也支持ajax功能,但是我觉得用太多struts的自带标签,想使用bootstrap的定义风格就不好了,页面效果会打折扣,另外个人觉得现在的更广泛的是前端的写前端的,尽量不要前台的也需要知道struts如何写,之后重构也更麻烦.[补充,搜索过一个有个插包使在struts可以用bootstrap,但是觉得可能支持的bootstrap的版

Hibernate 中setResultTransformer使用

在使用hibernate框架,查询数据库多张表或者单张表的某几个需要的字段数据时,往往只能通过sql语句配合setResultTransformer将查询到的数据封装到一个map集合中,再将map集合放入list中返回数据. 示例: 控制层:查询还款明细,还款单号.流水号.还款人.还款日期.还款金额//查询还款明细,还款单号.流水号.还款人.还款日期.还款金额 List<Map<String,Object>> list2 = receivableService.findContac

hibernate使用setResultTransformer()将SQL查询结果放入集合中

在平时开发中Hibernate提供的hql基本能够满足我们的日常需求.但是在有些特殊的情况下,还是需要使用原生的sql,并且希望sql查询出来的结果能够绑定到pojo上.hibernate API中的createSQLQuery  和createQuery接口. 就像在这次的项目中,因为表结构要变化,有个新的需求: 要从一个表中查询极个别的字段并且还有几个是求多条数据的和的,之前一直在使用hibernate的API,使用的都是映射过得对象. 原对象及表结构是这样的: @Entity @Table

hibernate中的addEntity setResultTransformer的比较

如果使用原生sql语句进行query查询时,hibernate是不会自动把结果包装成实体的.所以要手动调用addEntity(Class class)等一系列方法.1.session.createSQLQuery(sql).addEntity(Class class);      注意hibernate3.0.5不支持单个参数的addEntity方法2.session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBea

Hibernate逆向工程

MySQL Administrator 创建表 MyEclipse Database Explorer视图: 1. New 2 .Driver template: MySQL Connector/J Driver name: 给定一个连接名称 Connection URL: jdbc:mysql://<hostname>[<:3306>]/<dbname>相应的修改 User name: MySQL连接名 Password: MySQL连接密码 Driver JARs:

Hibernate之底层原理的7点整理和总结

开心一笑 [老婆想减肥,让老公帮她买减肥药,老公:吃药伤身,现在挺好,多有肉感啊.儿子:其实真有点胖,老公立刻瞪了儿子一眼:小孩子不知道别乱讲,你妈妈这身材我喜欢.然后,趁老婆不注意狠狠的教训了儿子:以后说话注意点,减肥药很贵的,你要告诉你妈,少吃点饭不就减下去了.都是套路啊--] 提出问题 关于Hibernate,个人的7点简单整理和总结??? 解决问题 1.Hibernate简单介绍 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与

用Hibernate框架把hql生成可执行的sql语句-Oracle方言

引言:为什么这样的需求,源自公司项目需要,公司的项目使用java的struts2+spring2.5+oracle中间件tuxedo,数据库用的是Oracle,但由于不直接连接数据库,用中间件处理的方式,又不希望有太多服务,所以就开始网络找资料整理编码了.大概花了一个多星期完成了这个任务,现在整理出来与大家分享,也是自己知识的梳理. 1.需要导入相关的jar包: [按字母顺序排列] antlr-2.7.5H3.jar 语言转换工,Hibernate利用它实现 HQL 到 SQL的转换 asm.j

hibernate学习笔记之四(Hibernate中的类型)

(hibernate学习笔记系列来自于 "疯狂Java" Hibernate视频学习) Hibernate中的类型 在*.hbm.xml文件中,<property name="password" column="t_pass">,hibernate根据type转换将java转换成hibernate类型,然后再转换成SQL类型,<property name="password" type="...&q

Hibernate反向工程使用心得

MyEclipse中的hibernate反向工程可以根据数据表自动为我们生成实体类,提高工作效率. 但是,hibernate中单向一对多,多对一,双向多对一关联底层的数据库结构是一样, 双向一对一,单向一对一关联的底层数据库也差不多. 所以在进行反向生成实体类时候需要在生成过程中进行一些设置来生成我们需要的关联关系. 首先必须在myeclipse中建立数据库连接和配置好hibernate环境, 详细可参考:http://blog.csdn.net/fycheung/article/details