Hibernate ......如何进行数据库/ SQL查询?

时间:2010-07-16 09:17:05

标签: java sql hibernate orm

我(我想)我明白Hibernate让我可以访问关系数据库,就好像我有一个与我定义的某些表的视图相匹配的类。

如何通过课程获取特定查询的结果?特别是,我可以发出复杂​​的SQL查询,并处理多个结果吗?

使用Hibernate会失去SQL的强大功能吗?

2 个答案:

答案 0 :(得分:4)

  

我(我想)我明白Hibernate让我可以访问关系数据库,就好像我有一个与我定义的某些表的视图相匹配的类。

Hibernate提供了一个允许将对象模型映射到数据库的框架,以及一个通过此对象模型处理数据的API。

  

如何通过课程获取特定查询的结果?特别是,我可以发出复杂​​的SQL查询,并处理多个结果吗?

我不确定我是否明白这个问题,但让我们看看。 Hibernate方式是使用HQL (Hibernate Query Language) queries和/或Criteria queries在对象模型上执行查询

但您也可以使用Native SQL(牺牲可移植性)返回entitiesmultiple entities甚至non-managed entities(另请参阅Hibernate 3.2: Transformers for HQL and SQL)。

  

使用Hibernate会失去SQL的强大功能吗?

HQL和Criteria API非常强大 - 并且可移植 - 并且会为您的后端生成适当的SQL。如果需要,您仍然可以使用已提到的本机SQL查询。但在大多数情况下,HQL和Criteria运行良好,应该是首选。

另见

答案 1 :(得分:3)

  

Hibernate3允许您为所有创建,更新,删除和加载操作指定手写SQL,包括存储过程。

 sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").list();

更多http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querysql.html