如何在Spring数据JDBC中使用很多可选的查询参数?

How to use many optional query parameters in Spring Data JDBC?

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

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 数据 JDBC 做同样的事情?

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

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

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

的副作用到达