如何在hibernate中使用用户定义函数完成的是sql(并且仍然有分页)

发布于 2024-11-01 05:27:42 字数 242 浏览 1 评论 0原文

我需要运行一个使用我在 Oracle SQL(10g) 数据库上创建的函数的查询。

  • 我已经看到 Hibernate 支持一些聚合函数(avg、sum、min、max 和某些形式的计数),但我想要我自己的函数,所以这不起作用。

  • 我还看到可以使用 SQLQuery 对象进行直接 SQL 注入。但在这里我失去了分页,我真的需要这个。

    有人知道该怎么做吗? 预先感谢!

I need to run a query that uses a function I created on the Oracle SQL(10g) database.

  • I've seen that Hibernate supports some aggregate functions (avg, sum, min, max and some forms of count) but I want my own function so this doesn't work.

  • I have also seen that I can use SQLQuery object for direct sql injection. But here I loose pagination and I really need this.

    Anyone knows how to do this?
    Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

纸短情长 2024-11-08 05:27:42

对于 HQL 查询,您需要根据当前使用的 Oracle 方言 (Oracle10gDialect) 创建自己的方言,并将您的函数添加到该方言中。

对于 Criteria 查询,您可以定义自己的 Criterion 实现并在查询中使用它。此 Criterion 负责 SQL 表达式的生成。查看 Hibernate 源代码以查找与您要创建的标准类似的现有标准实现的示例。

For HQL queries, you need to create your own dialect based on the Oracle dialect you're currently using (Oracle10gDialect), and add your function to this dialect.

For Criteria queries, you may define your own Criterion implementation and use it in your query. This Criterion is responsible of the generation of the SQL expression. Look at the Hibernate sources to find an example of an existing criterion implementation similar to the one you want to create.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文