如何在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
的副作用到达
我们想使用存储在 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