3 回答
TA贡献1816条经验 获得超4个赞
您可以在我的高性能 Java 持久性 GitHub 存储库中找到一个功能齐全的示例。
在您的情况下,您不需要自定义JpaPlatform
. 那应该设置为HibernateJpaPlatform
.
您可以MetadataBuilderContributer
通过配置文件以编程方式注册application.properties
:
hibernate.metadata_builder_contributor=com.vladmihalcea.book.hpjp.SqlFunctionsMetadataBuilderContributor
TA贡献1775条经验 获得超8个赞
创建一个类,在重写的方法中添加需要用到的 mySql 函数:
public class SqlFunctionsMetadataBuilderContributor implements MetadataBuilderContributor{
@Override
public void contribute(MetadataBuilder metadataBuilder) {
metadataBuilder.applySqlFunction(
"group_concat",
new StandardSQLFunction(
"group_concat",
StandardBasicTypes.STRING
)
);
}
}
之后,通过 application.properties 提供您的 metadata_builder_contributor:
spring.jpa.properties.hibernate.metadata_builder_contributor = qualifiedClassName
TA贡献1796条经验 获得超4个赞
如果有人在 SpringBoot 应用程序中注册时遇到问题,这是正确的方法:
创建一个实现的类:MetadataBuilderContributor 接口。
package com.application.config;
public class SqlFunctionsMetadataBuilderContributor implements MetadataBuilderContributor {
@Override
public void contribute(MetadataBuilder metadataBuilder) {
metadataBuilder.applySqlFunction(
"STRING_AGG",
new StandardSQLFunction(
"STRING_AGG",
StandardBasicTypes.STRING
)
);
}
}
在您的应用程序 .yml(或 .properties)中,在以下属性路径中引用先前创建的类:spring.jpa.properties.hibernate.metadata_builder_contributor
spring:
jpa:
properties:
hibernate:
metadata_builder_contributor: com.application.config.SqlFunctionsMetadataBuilderContributor
添加回答
举报