【发布时间】:2018-06-25 16:09:42
【问题描述】:
我有以下用户表和存储库。
用户:
id;name;job;age
1;steve;nurse;33
2;steve;programmer;null
3;steve;programmer;null
存储库方法:
@Query("SELECT u FROM User u WHERE ("
+ "LOWER(u.name) = LOWER(:name) AND "
+ "LOWER(u.beruf) = LOWER(:job) AND "
+ "LOWER(u.alter) = LOWER(:age))")
public List<User> findUsers(@Param("name") String name,
@Param("job") String job,
@Param("age") String age);
如果我使用以下参数调用存储库方法
String name = "steve";
String job = "programmer";
List<User> result = repository.findUsers(name, job, null); // empy list ..why ?
我得到一个空列表作为结果,尽管我希望得到 id=2 和 id=3 的实体作为结果。
我做错了什么?我应该如何更改查询以获取两个实体作为结果。
谢谢
【问题讨论】:
-
首先我不明白为什么年龄是一个字符串而不是一个整数;无论如何..您是否使用 MySQL 客户端尝试查询?
标签: sql spring spring-data-jpa spring-data jpa-criteria