【问题标题】:How to add parameters to IN clause in spring data repository native query如何在spring数据存储库本机查询中向IN子句添加参数
【发布时间】:2018-10-08 07:18:37
【问题描述】:
各位,
我在寻找通过 Spring 数据存储库在本机查询中为 IN 子句发送参数的方法时遇到问题。我尝试发送字符串列表,连接
和格式化的字符串......没有任何帮助
【问题讨论】:
标签:
sql
spring-data
spring-data-jpa
nativequery
【解决方案1】:
解决办法如下:
@Repository
public interface Repo extends PagingAndSortingRepository<Log, Long>
{
@Query(value = QUERY, nativeQuery = true)
List<OrderExecutionLog> findTop1OrderByInitiatedAsc(String[] types);
String QUERY = "SELECT log.* " +
"FROM log" +
"WHERE `type` IN (?3) ";
}
我尝试了使用列表或连接字符串等的几种变体......但是一个简单的数组给了我想要的结果。我认为Spring社区需要看看我遇到的这个简单的问题。
祝你好运。希望这可以帮助像我这样的人:)
【解决方案2】:
如果您有要作为 IN 子句参数传递的字符串列表,请参阅下文
@Query(value="SELECT * FROM SOME_TABLE WHERE COLUMN_SOME_NAME IN :someList", nativeQuery = true)
List<T> getList(List<String> someList);