【问题标题】:JDBI generic CrudDao interface with dynamic table names具有动态表名的 JDBI 通用 CrudDao 接口
【发布时间】:2022-11-07 07:29:30
【问题描述】:

我有一个父 JDBI 接口,我的 daos 继承自(如 JDBI's docs 所示):

@UseClasspathSqlLocator
public interface CrudDao<T, ID> {
  @SqlUpdate 
  void insert(@BindBean T entity);

  @SqlQuery 
  Optional<T> findById(ID id);

  @SqlQuery
  List<T> list();

  @SqlUpdate
  void update(@BindBean T entity);

  @SqlUpdate
  void deleteById(ID id);
}

上述技术要求我为我创建的每个 DAO 创建 insert.sql、update.sql、deleteById.sql、list.sql 和 findById.sql。由于后三个 sql 语句在所有 DAO 类中都是相同的(表名除外),是否可以只指定一次 sql 语句并让所有继承的 CrudDao 类都使用它们?

我想起了 Spring JPA 的 SpEL supports #{#entityName} 查询语法。

【问题讨论】:

    标签: java jpa spring-data-jpa jdbi


    【解决方案1】:

    也许这是可以帮助你的东西。

    查看@define 注释。

    How to dynamically bind a table name in JDBI

    【讨论】:

      猜你喜欢
      • 2020-08-10
      • 2014-06-30
      • 2018-05-05
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多