【问题标题】:Pass Java Arraylist to native query of JpaRepository将 Java Arraylist 传递给 JpaRepository 的本机查询
【发布时间】:2019-07-26 10:59:40
【问题描述】:

我有一个 id List 列表,那么如何将它传递给 JpaRepository 的本机查询?我找到了一些关于在 SQL 查询中使用 IN 的答案,但它没有与 List 作为参数一起使用。 示例:我在数据库中有一个任务列表,我想选择 id 在列表中的所有任务。 我的代码如下所示:

    @Query("SELECT i FROM Task i WHERE DATE(i.startTime) = DATE(?1)")
Page<Task> findTasksByAssigneeIdAndAndStartTime(Pageable pageable, List<Long> taskId, Timestamp today);

谢谢

【问题讨论】:

    标签: java mysql spring-data-jpa nativequery


    【解决方案1】:

    您可以将 IN 与列表一起用作参数。如下所示。

     @Query(value="SELECT i FROM Task i WHERE DATE(i.startTime) = DATE(?1) and taskId in :taskId",nativeQuery = true)
     Page<Task> findTasksByAssigneeIdAndAndStartTime(Pageable pageable, List<Long> taskId, Timestamp today);
    

    【讨论】:

    • 我在这里遇到了可分页的问题
    • 您的查询是如何在上面在 taskId 中给出的本机查询中将列表作为参数传递。其余的,你必须操作你的代码。
    猜你喜欢
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多