2

我在尝试计算 Hql 中两个日期之间的持续时间时遇到了困难,所以我在一篇文章中读到我必须使用自定义方言注册 hql 功能,但问题是我正在开发一个开源项目,我不想附加到特定的 DBMS 实现,

所以现在我正在尝试将 SQL 函数注册到休眠配置Configuration.addSqlFunction(...) 中,但我不知道如何在应用程序启动时获取我的配置对象。

这是我如何初始化休眠

@Configuration
@PropertySource("classpath:application.properties")
public class DatabaseConfiguration {
}
4

1 回答 1

0

子类 MetadataBuilderContributor。

public class SqlFunctionsMetadataBuilderContributor
        implements MetadataBuilderContributor {
         
    @Override
    public void contribute(MetadataBuilder metadataBuilder) {
        metadataBuilder.applySqlFunction(
            "group_concat",
            new StandardSQLFunction(
                "group_concat",
                StandardBasicTypes.STRING
            )
        );
    }
}

这个例子来自https://vladmihalcea.com/hibernate-sql-function-jpql-criteria-api-query/

于 2021-07-16T22:13:57.910 回答