使用 JPA 和 Hibernate 注册 SQL 函数

2024-02-12

我想知道最好的方法是什么使用 JPA/Hibernate 注册自定义 SQL 函数.

我是否必须扩展 MysqlInnodb 方言还是有更好的方法?

任何人都可以提供代码示例和相关文档的指针吗?


您可能会阅读一些文章,告诉您通过扩展 Hibernate 来注册 SQL 函数Dialect,但这是一个幼稚的解决方案。

从 Hibernate ORM 5.2.18 和 5.3.1 开始,注册 SQL 函数的最佳方法是提供MetadataBuilderContributor https://vladmihalcea.com/hibernate-sql-function-jpql-criteria-api-query/像这样:

public class SqlFunctionsMetadataBuilderContributor 
        implements MetadataBuilderContributor {
         
    @Override
    public void contribute(MetadataBuilder metadataBuilder) {
        metadataBuilder.applySqlFunction(
            "group_concat",
            new StandardSQLFunction(
                "group_concat", 
                StandardBasicTypes.STRING
            )
        );
    }
}

您可以通过以下方式将其传递给 Hibernatehibernate.metadata_builder_contributor配置属性:

<property>
    name="hibernate.metadata_builder_contributor" 
    value="com.vladmihalcea.book.hpjp.hibernate.query.function.SqlFunctionsMetadataBuilderContributor"
</property>

或者,如果您本机引导 Hibernate,则只需将 SQL 函数应用到MetadataBuilder在引导期间。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JPA 和 Hibernate 注册 SQL 函数 的相关文章

随机推荐

  • 如何在运算符处分割字符串

    我正在用 Java 创建一个计算器 如果我让用户输入一个字符串 例如 7 4 18 3 2 到目前为止 我必须让用户在每个数字或运算符之间输入一个空格 我如何从给定的字符串创建一个数组 其中字符串按数字或运算符拆分 因此在这种情况下数组将是
  • 错误:警告:从空值创建默认对象

    我第一次发帖 我希望有人能帮助我解决周三出现在我的网站上的这个错误 我不知道如何纠正它 因为我从未接触过 php 文件 如果我能得到一些帮助 我将非常感激 出现错误的网站位于页面顶部 http www inkedkoidesigns ca
  • 如何安装 QtWebKit 插件

    我正在运行 Qt 4 5 商业快照 并希望在我的应用程序中使用我下载的插件 它是一个 so 文件 QWebView 我需要放置此文件的特定位置吗 我可以使用QWebPluginFactory 我假设这里的插件是 NPAPI 插件 例如 Fl
  • 无法创建 SSL/TLS 安全通道 - 问题可能出在代理服务器上吗?

    我有一个 C 应用程序 它调用使用证书进行身份验证的 Web 服务方法 该代码有效 因为当它安装在服务器 A 没有代理 上时 它会进行身份验证 当我在客户端站点的服务器 B 上安装代码时 它安装在代理后面 我确实尝试了几乎所有方法 但我不断
  • 为什么 List 不实现 IOrderedEnumerable

    我想使用有序枚举 并使用接口作为返回类型而不是具体类型 我需要返回一组有序的对象 但是 当使用IList
  • 如果键不存在,C# Dictionary 查找会发生什么情况?

    我尝试检查 null 但编译器警告这种情况永远不会发生 我应该寻找什么 假设您想获取键的值does存在 使用Dictionary
  • 如何使用 beautifulsoup 检查字符串是否存在

    您好 我正在尝试编写一个程序来抓取 URL 如果抓取数据包含特定字符串 请执行某些操作 我如何使用 beautiful soup 来实现此目的 import requests from bs4 import BeautifulSoup da
  • $(...).function 不是函数 jQuery

    我知道这个问题已经在之前的帖子中发布过 但没有任何帮助 这让我发疯 更重要的是我确信答案非常简单 但我对 javascript 真的很陌生 我正在尝试从那里集成这个 raptor konami code http zurb com play
  • WooCommerce 以编程方式创建订单并重定向到付款

    对于 WooCommerce 我正在寻找一种以编程方式创建订单的解决方案 我的网站只有 1 个带有一些字段的主页 来订购 使用复选框添加产品后 我想创建订单并重定向到付款方式 有了这个答案 创建订单就差不多完成了 但是我如何开始付款呢 Wo
  • 不变量和验证规则有什么区别?

    我经常看到这个词不变量在DDD中 Here https msdn microsoft com en us magazine hh205755 aspx迪诺 埃斯波西托谈到了这一点 如果我查看 NET 库 我会看到验证属性 https msd
  • R 跨多个页面的网页抓取

    我正在开发一个网络抓取程序来搜索特定的葡萄酒并返回该品种的当地葡萄酒列表 我遇到的问题是多页结果 下面的代码是我正在使用的基本示例 url2 lt http www winemag com s washington merlot searc
  • 将 JTextArea 更改为 JScrollPane 导致其不可见

    我在 JScrollPanes 和 JTextArea 对象以及如何让它们一起工作方面遇到问题 如果我只是将 JTextArea 添加到我的 JPanel 中 它就可以正常工作并显示在我指定的位置 但是 如果我将 contentPane a
  • 将 Pandas 对象与常规 Python 对象一起存储在 HDF5 中

    熊猫有一个不错的界面 http pandas pydata org pandas docs dev io html有助于将 Dataframes 和 Series 等内容存储在 HDF5 中 random matrix np random
  • LabelEncoder:类型错误:“float”和“str”实例之间不支持“>”

    即使处理缺失值 我也面临多个变量的错误 例如 le preprocessing LabelEncoder categorical list df select dtypes include object columns values for
  • 在 Play2 / Scala 中从内存中的 MultipartFormData 提取文件

    我目前正在 Play2 Scala 中使用以下内容 使用 FileUploader Javascript 实用程序将文件上传到我的服务器 def fileUploader Action parse multipartFormData req
  • 如何在 R 中创建具有自定义分位数的箱线图?

    我现在正在处理一些数据 我想制作一个箱线图 显示最小值 2 5 25 50 70 75 97 5 和最大值 箱线图还应该有一个图例 显示不同颜色的线条来代表每个分位数 有什么办法可以做到这一点吗 谢谢你的帮助 set seed 123 My
  • Azure DevOps:跨存储库拉取请求?

    我不确定人们是否通常在同一存储库中维护生产分支和其他开发 开发人员特定分支 但我希望拥有单独的仅生产存储库 现在 在这种情况下 我如何不断更新生产存储库 分支中的代码 如果是同一个存储库 那么我可以跨分支创建拉取请求 并使分支 代码保持最新
  • 如何以编程方式在 sitecore 中设置 Treelist 的值

    我有一个职位描述页面 我正在以编程方式向其添加值 其中一个字段是 Office Locations 数据类型为 Treelist 如何将值添加到树列表以便我可以设置办公位置 Sitecore Treelist以管道分隔形式存储所选项目的 i
  • 使用部署槽部署Azure Functions时如何避免主机重启?

    我将管道配置为对 Azure Functions 进行零停机时间部署 为此 我采取了以下步骤 创建槽 部署到插槽 开始交换预览 完成交换 我对此过程的理解是 所有重新启动都应该仅在预览槽上发生 因此只有 JobHost 应该重新启动 并且这
  • 使用 JPA 和 Hibernate 注册 SQL 函数

    我想知道最好的方法是什么使用 JPA Hibernate 注册自定义 SQL 函数 我是否必须扩展 MysqlInnodb 方言还是有更好的方法 任何人都可以提供代码示例和相关文档的指针吗 您可能会阅读一些文章 告诉您通过扩展 Hibern