Depuis Hibernate 5.2.18, vous pouvez utiliser l'utilitaire MetadataBuilderContributor pour personnaliser le MetadataBuilder même si vous démarrez via JPA.
Le MetadataBuilderContributor
l'interface peut être implémentée comme ceci :
public class SqlFunctionsMetadataBuilderContributor
implements MetadataBuilderContributor {
@Override
public void contribute(MetadataBuilder metadataBuilder) {
metadataBuilder.applySqlFunction(
"group_concat",
new StandardSQLFunction(
"group_concat",
StandardBasicTypes.STRING
)
);
}
}
Et, nous pouvons fournir le SqlFunctionsMetadataBuilderContributor via la propriété de configuration hibernate.metadata_builder_contributor :
<property>
name="hibernate.metadata_builder_contributor"
value="com.vladmihalcea.book.hpjp.hibernate.query.function.SqlFunctionsMetadataBuilderContributor"
</property>
Référence :https://vladmihalcea.com/hibernate-sql- fonction-jpql-criteria-api-query/