shean lai ID:laishean
2184次访问,排名2万外好友0人,关注者0
laishean的文章
原创 4 篇
翻译 0 篇
转载 3 篇
评论 24 篇
最近评论
文章分类
收藏
    相册
    blog收藏
    canonical
    笑看人参
    收藏的web资源
    精美的图片网页素材
    收藏的技术文章或网站
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 hibernate native sql收藏

    新一篇: 转载一篇文章,很搞笑,还能学知识 | 旧一篇: 用JFreeChart画统计分析柱状图

    1.直接返回List结果集,不包括列名信息

    List ls = session.createSQLQuery(querySql).list();

    如果当前查询SQL里包括多列,则List里每行存放的是Object数组,如果直接查询的是一列,则每行存放的则直接就是查询的哪一列的数据。
    也可以在返回的结果数据里指定每一列的类型
    List ls2 = session.createSQLQuery(querySql).addScalar("column_name", Hibernate.DATE).list();
    这样返回的数据的时候Hiberante就会对返回的数据转换成你指定的数据类型.这个是在3.1版本就支持的操作。

    2.返回包括列名信息,可以是数据每行转换成一个Map形式。则KEY对应列名,VALUE对应当前列的值
    实现方法如下:

    List ls3 = session.createSQLQuery(querySql).setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP).list();

    这样返回的结果集每行就是Map(key:column,value:columnValue);还可以使用其他的一些Hibernate定义好的一些ResultTransformer方法的实现类。具体可以参考org.hibernate.criterion.CriteriaSpecification里定义的一些。
    当然列可以实现自己的数据组装方法,只需要实现ResultTransformer接口就行了。
    注意:ResultTransformer实现新版本的Hibernate才支持


    以上例子说明的两种方法是没有Hibernate的mapping对象的概念。直接和JDBC返回的结果差不多。
    如果想支持返回数据为Hibernate的Entity可以具体参考Hibernate参考文档里的 Native SQL查询一章的实现方法。 

    发表于 @ 2007年01月10日 16:08:00|评论(loading...)|编辑

    新一篇: 转载一篇文章,很搞笑,还能学知识 | 旧一篇: 用JFreeChart画统计分析柱状图

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © laishean