createSQLQuery获取对象列表
来源:互联网 发布:帝国cms手机模板 编辑:程序博客网 时间:2024/05/29 18:01
在进行对象关系映射时,无论是使用Hibernate Session还是JPA EntityManager,都会有许多的优势,同时也伴随着不少的缺陷,这也就说明了企业架构师为何在这两者之间难以抉择了。JPA EntityManager是Java Persistence API标准的一部分。然而,Hibernate Session提供的许多功能都在JPA specification之上,超越了JPA specification,标准查询功能是一个引人注目的,但JPA 1.0却没有的遗留功能,而Hibernate Envers成了使用Hibernate 4.0 Session对象的强大理由,超越了它的JPA们。
据Emmanuel Bernard说,组织采用Hibernate来执行ORM工作是喜欢的一种选择是使用JPA EntityManager。他是Jboss的数据架构师,也是Hibernate团队一员。因此,如果IT开发人员需要得到基础 Hibernate Session来访问它的附加功能的话,他们应该怎么做?幸运地,JPA规范使提访问基本Hibernate Session成为可能,即使你的应用正在使用JSR-317标准。
JPA 1.0访问Hibernate Session
为也从JPA 1.0 EntityManager中得到Hibernate Session,那么下面的代码是必不可少的:
- org.hibernate.Session hibernateSession = (Session)entityManager.getDelegate();
不幸地,这个语法不是完全可移植的,虽然此代码可在Jboss应用服务器上运行良好,但运行在其它平台时,将会出现不可预测的后果。
JPA 2.0访问Hibernate Session
很幸运,JPA 2.0提供了更好的、更可移植的,更加跨平台的方法,来获取Hibernate Session。代码如下:
- Session session = entityManager.unwrap(org.hibernate.Session.class);
就是它了!当与JPA EntityManager一起合作是,获取基本的Hibernate实现类是如此地简单。因此,让此代码成为你的HibernateUtil类的一部分,使永久存储成为可能,与你的实体beans一起工作,成为多态的Hibernate Session,从而允许你利用更多的简洁功能,超越JPA规范,凌驾于JPA之上。
hibernate 中createQuery与createSQLQuery两者区别是:
前者用的hql语句进行查询,后者可以用sql语句查询
前者以hibernate生成的Bean为对象装入list返回
后者则是以对象数组进行存储
所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便
突然发现createSQLQuery有这样一个方法可以直接转换对象
- Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);
XXXXXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean。
- createSQLQuery获取对象列表
- createSQLQuery返回对象
- 获取对象的属性列表
- iOS获取对象属性列表
- 使用createSQLQuery直接封装成自定义对象
- 获取PDH性能对象列表之三-------------获取性能对象的属性列表以及实例列表
- runtime获取对象属性及方法列表
- 在.net平台中 获取ODBC数据对象的列表
- 使用SharePoint对象SPFieldCollection获取列表所有字段信息
- 获取对象的类名,属性及方法列表
- 获取PDH性能对象列表之一------------PDH简介
- Swift3.0 运行时获取对象属性列表
- Revit api 获取文档内所有对象根列表
- jquery select 获取下拉列表对象 radio 获取单选对象
- 获取PDH性能对象的列表之二------------获取Windows所有性能对象
- createSQLQuery error
- createSQLQuery 用法
- hibernate 写createSQLQuery(sql)& 带异步async: false,抽取json对象的ajax 和dataType:"json"
- (HttpClient技术)(Hotmail和outlook系列)Hotmail和outlook的邮箱注册破解
- 如何防止空链接“#”返回到页面?
- POJ 1321 棋盘问题
- 【第四章】 资源 之 4.4 Resource通配符路径 ——跟我学spring3
- Win7+Ubuntu11.10(EasyBCD硬盘安装) ——win7和ubuntu双系统中win7启动不了GRUB_TIMEOUT="10"
- createSQLQuery获取对象列表
- 用 alias 给常用命令取个别名
- Qt中文支持
- android中button点击频率控制
- 【floyed】【HDU1217】【Arbitrage】
- C语言控制台进度条
- Nginx系列(十.nginx反向代理)
- 数据结构之排序算法(八大排序)
- linux shell检测网络连接