动态Spring Data JPA查询与数组

时间:2016-05-19 20:00:42

标签: java arrays spring hibernate spring-data-jpa

我正在尝试编写一个查询,该查询将检查数组中的所有项是否都属于单个记录。

就像两个变量一样,我可以写

 @Query( "from #{#entityName} c where c.channelType = 'group' and exists ( from UserChannel u where c.id = u.channel.id and u.user.id = :userId ) and exists (from UserChannel u where c.id = u.channel.id and u.user.id = :userId2)" )
    Set< Channel > findGroupChannelsByUserIds( @Param( "userId" ) int userId, @Param( "userId2" ) int userId2 );

如果我的第二个参数是userid数组,那么我该如何编写查询呢?

2 个答案:

答案 0 :(得分:0)

我不是100%你的意思&#34;阵列的所有元素都满足条件&#34;。但看起来你需要的是一个&#39; in&#39;条件。

你可以说

...u.user.id in :userId2

其中userId2是List。 (适用于Spring数据1.9.4 - 可能不适用于早期版本)

答案 1 :(得分:0)

我按照这个答案:Spring JPA Repository dynamic query来解决它。

我必须创建另一个interface并提供相应的实现。然后我在repository

中扩展了该界面