如何在spring数据存储库本机查询中向IN子句添加参数

时间:2018-04-27 12:32:53

标签: sql spring-data spring-data-jpa nativequery

人,

我在查找通过Spring数据存储库在本机查询中发送IN子句参数的方法时遇到了问题。我试着发送字符串列表,连接起来  和格式化的字符串...没有任何帮助

2 个答案:

答案 0 :(得分: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社区需要看看我遇到的这个简单问题。

祝你好运。希望这有助于像我这样的人:)

答案 1 :(得分:0)

如果您有要作为IN子句的参数传递的字符串列表,请参见下文

@Query(value="SELECT * FROM SOME_TABLE WHERE COLUMN_SOME_NAME IN :someList", nativeQuery = true)
List<T> getList(List<String> someList);