代码之家  ›  专栏  ›  技术社区  ›  Ira Baxter

休眠…如何进行数据库/SQL查询?

  •  2
  • Ira Baxter  · 技术社区  · 16 年前

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

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

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

    2 回复  |  直到 15 年前
        1
  •  4
  •   Pascal Thivent    16 年前

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

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

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

    我不确定我理解这个问题,但让我们看看。冬眠的方法是 HQL (Hibernate Query Language) queries 和/或 Criteria queries 执行查询 在对象模型上 .

    但也可以使用本机SQL(牺牲可移植性)返回 entities , multiple entities 甚至 non-managed entities (也见) Hibernate 3.2: Transformers for HQL and SQL )

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

    HQL和标准API非常强大-而且 便携式的 -并将为您的后端生成适当的SQL。如果需要,您仍然可以使用前面提到的本机SQL查询。但在大多数情况下,HQL和 标准 工作良好,应优先考虑。

    也见

        2
  •  3
  •   miku    16 年前

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

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

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