【问题标题】:How to use many optional query parameters in Spring Data JDBC?如何在 Spring Data JDBC 中使用许多可选的查询参数?
【发布时间】:2021-01-21 08:33:14
【问题描述】:

我们希望使用存储在 POJO 中的许多可选搜索条件来查询表。

public class TemperatureMeterCriteria {

    private String state;
    private String title;
    private LocalDate date;
    private Year year;
    private Integer month;
    private Integer week;
    private LocalDate startDate;
    private LocalDate endDate;
    private DateQuery dateQuery;
    private AlertLevel alertLevel;
    ...

}

MyBatis 超级简单:https://mybatis.org/mybatis-3/dynamic-sql.html

<select id="findTemperatureMeter" resultType="TemperatureMeter">
    SELECT * FROM TEMPERATURE_METER
    <where>
        <if test="state != null">
            state = #{state}
        </if>
        <if test="title != null">
            AND title like #{title}
        </if>
    ...
    </where>

但是,如何使用 Spring Data JDBC 做同样的事情呢?

https://docs.spring.io/spring-data/jdbc/docs/current/reference/html

【问题讨论】:

    标签: spring-data-jdbc


    【解决方案1】:

    目前唯一的选择是创建自定义方法并在内部使用第三方库,如 Querydsl、jOOQ 或 MyBatis。

    尽管通过JdbcAggregateTemplate 提供方法正在进行中,该方法将接受Condition,可用于此目的。第一步(仅限删除)将作为https://github.com/spring-projects/spring-data-jdbc/issues/771 的副作用到达

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-21
      • 2015-12-20
      • 2018-08-16
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 2020-02-03
      相关资源
      最近更新 更多