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

标签 java sql hibernate orm

我(认为我)理解 Hibernate 为我提供了对关系数据库的访问,本质上就好像我有一个类可以匹配我定义的某些表的任何 View 。

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

使用 Hibernate 是否会失去 SQL 的任何强大功能?

最佳答案

I (think I) understand that Hibernate offers me access to a relational database essentially as if I had a class(es) that matched whatever view(s) I define of some tables.

Hibernate 提供了一个框架,允许将对象模型映射到您的数据库,并提供一个 API 以通过该对象模型操作数据。

How do I get the results of a specific query to be accessible via a class? In particular, can I issue a complex SQL query, and process multiple results?

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

但是你也可以使用Native SQL(牺牲可移植性)来返回entities , multiple entities甚至 non-managed entities (另请参见 Hibernate 3.2: Transformers for HQL and SQL)。

Do I lose any of the power of SQL by using Hibernate?

HQL 和 Criteria API 非常强大 - 而且可移植 - 将为您的后端生成正确的 SQL。如果需要,您仍然可以使用已经提到的 native SQL 查询。但在大多数情况下,HQL 和 Criteria 效果很好,应该是首选。

另见

关于java - Hibernate...如何进行数据库/SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3263461/

相关文章:

java - 如何从数据库表生成 hibernate POJO 类

java - 终止 mvn spring-boot :run doesn't stop tomcat

JAVA继承访问

C# SqlCommand - 不能为列名使用参数,如何解决?

sql - 替换字符串中的前导字符

java - ORA-01460 : unimplemented or unreasonable conversion requested using Hibernate @Lob

java - 使用 hibernate 验证电子邮件是否已在我的数据库中

c# - C/C++ 和 C#/Java 之间 volatile 的用法有什么区别?

java - 使用数据库的典型 API 或标准是什么? (关系型、对象型和 Nosql)

sql - Join语句,但只需要根据WHERE表列为空获取数据