Quarkus设置application.properties不支持的Hibernate属性方法
解决方案
Quarkus对未做原生配置映射的Hibernate参数提供了通用透传配置规则,不需要额外编写自定义配置类,也不需要强制切换到persistence.xml配置方式,直接在application.properties中按规则添加配置即可。
具体配置步骤
在项目的src/main/resources/application.properties文件中添加如下配置行:
quarkus.hibernate-orm.hibernate.hql.bulk_id_strategy=org.hibernate.hql.spi.id.inline.InlineIdsInClauseBulkIdStrategy
注意事项
- 配置规则:所有Hibernate原生属性,都可以通过在属性名前拼接
quarkus.hibernate-orm.前缀的方式在Quarkus配置文件中声明,Hibernate ORM扩展会自动识别这类配置并透传给Hibernate核心,不受官方配置文档是否单独列出该参数的影响。 - Quarkus 2.9.2.Final默认绑定Hibernate 5.6版本,你所使用的
InlineIdsInClauseBulkIdStrategy策略类在该版本中为内置类,不需要额外引入依赖。 - 配置生效后,批量HQL更新/删除操作会直接通过IN子句拼接主键ID完成执行,不会再生成临时表。
- 如果你当前项目是通过
persistence.xml管理持久化单元,直接将你原有的<property name="hibernate.hql.bulk_id_strategy" value="org.hibernate.hql.spi.id.inline.InlineIdsInClauseBulkIdStrategy"/>配置项放到对应<persistence-unit>节点下,同样可以生效。
内容的提问来源于stack exchange,提问作者tbsalling
相关产品推荐
相关产品推荐

