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
添加回答
舉報