spring-data-jdbc - 如何在 Spring Data JDBC 中使用许多可选的查询参数?
问题描述
我们希望使用存储在 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
解决方案
目前唯一的选择是创建一个自定义方法并在内部使用第三方库,如 Querydsl、jOOQ 或 MyBatis。
尽管提供JdbcAggregateTemplate
可以接受 a 的方法,但正在进行的工作Condition
可以用于此目的。第一步(仅限删除)将作为https://github.com/spring-projects/spring-data-jdbc/issues/771的副作用到达
推荐阅读
- django - 如何将值从 get_queryset() 传递到 get_context_data()
- html - 如何在使用 ng-repeat 时在 css 中应用一个类
- python - python打开一个包含整数的文件
- go - 从golang调用时无法从调用GetConfiguration获取itemCategory信息
- python - Predict_proba() 的随机森林分类器结果与 predict() 不匹配?
- gcc - RISC-V 压缩指令:可以强制编译器在 32 位边界上对齐 32 位指令吗?
- r - 在 R 自动化中将数据附加到具有当前日期的现有数据
- vb.net - 如何在 VB.NET 中循环遍历列表
- pointers - 没有返回关键字的对象返回
- powershell - 如何将 prnmngr 的输出转换为自定义对象?