3 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以在我的高性能 Java 持久性 GitHub 存儲(chǔ)庫(kù)中找到一個(gè)功能齊全的示例。
在您的情況下,您不需要自定義JpaPlatform
.?那應(yīng)該設(shè)置為HibernateJpaPlatform
.
您可以MetadataBuilderContributer
通過(guò)配置文件以編程方式注冊(cè)application.properties
:
hibernate.metadata_builder_contributor=com.vladmihalcea.book.hpjp.SqlFunctionsMetadataBuilderContributor

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
創(chuàng)建一個(gè)類,在重寫的方法中添加需要用到的 mySql 函數(shù):
public class SqlFunctionsMetadataBuilderContributor implements MetadataBuilderContributor{
@Override
public void contribute(MetadataBuilder metadataBuilder) {
metadataBuilder.applySqlFunction(
"group_concat",
new StandardSQLFunction(
"group_concat",
StandardBasicTypes.STRING
)
);
}
}
之后,通過(guò) application.properties 提供您的 metadata_builder_contributor:
spring.jpa.properties.hibernate.metadata_builder_contributor = qualifiedClassName

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果有人在 SpringBoot 應(yīng)用程序中注冊(cè)時(shí)遇到問(wèn)題,這是正確的方法:
創(chuàng)建一個(gè)實(shí)現(xiàn)的類: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
)
);
}
}
在您的應(yīng)用程序 .yml(或 .properties)中,在以下屬性路徑中引用先前創(chuàng)建的類:spring.jpa.properties.hibernate.metadata_builder_contributor
spring:
jpa:
properties:
hibernate:
metadata_builder_contributor: com.application.config.SqlFunctionsMetadataBuilderContributor
添加回答
舉報(bào)