当前位置: 首页 > news >正文

帮忙做公司网站/技能培训有哪些

帮忙做公司网站,技能培训有哪些,长春网站建设工作室,网站开发的方法和步骤转自:http://blog.sina.com.cn/s/blog_6360eb050101kp70.html 在JPA 2.0 中我们可以使用entityManager.createNativeQuery()来执行原生的SQL语句。 但当我们查询结果没有对应实体类时,query.getResultList()返回的是一个List。也就是说每行的数据被作为一…

转自:http://blog.sina.com.cn/s/blog_6360eb050101kp70.html


在JPA 2.0 中我们可以使用entityManager.createNativeQuery()来执行原生的SQL语句。 但当我们查询结果没有对应实体类时,query.getResultList()返回的是一个List。也就是说每行的数据被作为一个对象数组返回。 

常见的用法是这样的:

public void testNativeQuery(){ Query query = entityManager.createNativeQuery("select id, name, age from t_user"); List rows = query.getResultList(); for (Object row : rows) { Object[] cells = (Object[]) row; System.out.println("id = " + cells[0]); System.out.println("name = " + cells[1]); System.out.println("age = " + cells[2]); } }

这样用会使代码非常不容易让人理解, 究竟下标为0的元素到底是什么, 不去数查询语句是不知道的,而且一旦查询语句被调整,Java代码也要一起调整。这时候我们想如果返回的是Map的话,用起来会清晰的多。

可惜的是JPA的API中并没有提供这样的设置。其实很多JPA的底层实现都是支持返回Map对象的。例如:
EclipseLink的query.setHint(QueryHints.RESULT_TYPE, ResultType.Map); 
Hibernate的.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

所以,如果我们想要返回Map并且确定底层用的是某一种JPA的实现时我们可以退而求其次, 牺牲跨实现的特性来满足我们的需求:

public void testNativeQuery(){ Query query = entityManager.createNativeQuery("select id, name, age from t_user");query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List rows = query.getResultList(); for (Object obj : rows) { Map row = (Map) obj; System.out.println("id = " + row.get("ID")); System.out.println("name = " + row.get("NAME")); System.out.println("age = " + row.get("AGE")); } }


这里需要注意的是, 用Map肯定要比用Object数组来的效率低。所以你要看性能下降是否在可接受范围内。再就是在我的Hibernate 4.2.x的环境下,无论你原生SQL中写的是大写字母还是小写字母,返回的字段名都是大写的。当然你可以通过自定义ResultTransformer的形式对字段名进行一定的处理, 甚至是返回自己需要的POJO。


.setResultTransformer(Transformers.aliasToBean(UserDTO.class))

.setResultTransformer(new AliasToBeanResultTransformer(UserDTO.class))

:::::::::::::

query.unwrap(SQLQuery.class).setResultTransformer

(Transformers.ALIAS_TO_ENTITY_MAP);

http://www.jmfq.cn/news/5208823.html

相关文章:

  • 陕西专业网站开发公司/吸引顾客的营销策略
  • 企业网站建设技巧/专业seo培训学校
  • 网站管理难做吗/备案查询
  • 深圳建网站哪个好/seo外链优化策略
  • 怎样优化排名自己网站/最新战争新闻事件今天
  • wordpress不适合做大站/中国网站排名
  • 做婚纱摄影网站多少钱/培训机构排名全国十大教育机构排名
  • java 做直播网站有哪些软件/百度电话客服24小时人工服务热线
  • 做视频比较好的理财网站/站长网站查询工具
  • 网站英文域名是什么/新产品怎样推广
  • 网站建设服务好公司/seo优化快速排名
  • 合肥网站建设哪家公司好/推广app网站
  • 复兴区网络推广公司/seo推广工具
  • 专做杰伦头像的网站/磁力宅
  • 网站开发 岗位职责/怎么在腾讯地图上添加自己的店铺
  • 小程序免费制作平台 真正免费/市场推广seo职位描述
  • 秦皇岛网站建设公司/2345网址导航
  • 交互式网站开发/全媒体运营师报考官网在哪里
  • 现在从深圳回来需要隔离吗?/成都抖音seo
  • 做搜狗网站点击/网站流量统计平台
  • 同城装修网/徐州seo顾问
  • 动力无限做网站/如何在互联网上做推广
  • 网站开发培训学校网站/360seo排名点击软件
  • 烟台网站建设科技公司/临沂百度公司地址
  • 做网站底部不显示中文怎么回事/萧山区seo关键词排名
  • 律师事务所 网站备案/50个市场营销经典案例
  • 点评网站开发/3小时百度收录新站方法
  • 交友网站模板/网络推广网站电话
  • 青岛当地的做公司网站的/免费推广公司的网站
  • 珠海高端网站建设/百度一下网页打开