【发布时间】:2014-02-10 03:37:14
【问题描述】:
我正在管理一个使用 PostgreSQL 数据库的 Spring Web App 的开发。
我正在做数据库工作并提供脚本(即authenticate_user)供使用Hibernate 的Java 开发人员使用。我对 Java 和 Hibernate 的了解有限。
我了解休眠的基本概念,但肯定不了解它必须提供的全部功能。我想拥有数据层的可见性和控制权,但想要最好的解决方案,所以会选择最好的。
我最初的想法是将所有查询/插入/更新脚本存储为函数或过程,并允许 Java 开发人员简单地调用它们并使用结果/结果集,而不是在 Java 中构建休眠表引用和查询类/XML 文件。我们的 Java 开发人员说他更愿意在所有事情上都使用 hibernate,并且正在转换我的函数/过程。
到目前为止,我们的 sql 语句非常简单。当它们达到以下帖子所示的复杂程度(或更高)时会发生什么?
How to construct advanced Hibernate Query with OR and summarize functions
如果一个函数/过程写在数据库上并被hibernate调用,Java开发人员可以简单地调用它们(即调用myFunction(param)或调用myProc(param))并使用完全相同的结果集好像他在休眠中构造了查询?例如;我从带有 GROUP 和 HAVING 子句的多个表中进行选择,它们返回 1000 条记录。如果我将该选择放入一个过程中,休眠开发人员可以简单地调用该过程并以与仅在休眠中创建选择相同的方式使用记录吗?
非常感谢, 大卫
【问题讨论】: