有一张table叫 zipcode
列为 id, zip, city, state
.
在我们的情况下,我们想得到的记录基于 id
或者 zip
或者 city
或者 state
.
常规sql查询如下所示
SELECT * FROM zipcode WHERE id=id AND zip=zip AND city=city AND state=state;
如果我们想得到一个特定的状态,那么我们将用给定的名称替换状态值。
SELECT * FROM zipcode WHERE id=id AND zip=zip AND city=city AND state='California';
如果我们想要一个特定的城市,那么我们可以写
SELECT * FROM zipcode WHERE id=id AND zip=zip AND city='Los Angles' AND state=state;
spring数据jpa的问题是,如果我们编写一个方法
@Query(value = "SELECT * FROM zipcode WHERE id=?1 AND zip=?2 AND city=?3 AND state=?4", nativeQuery = true)
List<Zipcode> getZipCodes(Integer id, Integer zip, String city, String state)
我只想得到一个特定的州以外的所有城市,但我不能使用这个方法,比如我如何使用上面的sql查询,我们只需要替换列值。
如何在springdatajpa中使用本机查询来实现这一点?
3条答案
按热度按时间ttvkxqim1#
我不知道spring数据是否有一种方法可以在单个方法中实现这一点,但您可以尝试使用一个示例:
falq053o2#
试试这个,
j13ufse23#
使用spring数据jpa查询参数