【问题标题】:How do I initialise QueryDSL SQL template dynamically using datasource如何使用数据源动态初始化 QueryDSL SQL 模板
【发布时间】:2020-10-07 07:42:54
【问题描述】:

我有一个数据源对象。我需要根据数据库类型初始化 QueryDSL 模板。我发现的一种方法是这样的,

SQLTemplates sqltemplate;
String dbname = dataSource.getConnection().getMetaData().getDatabaseProductName();
if(dbname.equals("PostgresSQL"))
{
 sqltemplate = PostgreSQLTemplates.builder().printSchema().build();
}
else
...

还有其他方法可以做到这一点吗? TIA

【问题讨论】:

    标签: spring spring-data querydsl


    【解决方案1】:

    代码大致正确,但我会将其抽象为QueryFactory。例如查看 SQLQueryFactory: https://github.com/querydsl/querydsl/blob/master/querydsl-sql/src/main/java/com/querydsl/sql/SQLQueryFactory.java#L32 。您可以扩展它以从数据源派生方言。然后在其他地方,您只需注入 QueryFactory bean 并调用 queryFactory.select(...)...,而不必构造新查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-21
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多