Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 集合包含@Query_Java_Spring_Spring Data Jpa - Fatal编程技术网

Java 集合包含@Query

Java 集合包含@Query,java,spring,spring-data-jpa,Java,Spring,Spring Data Jpa,有没有办法在@Query标记中使用“contains”函数?如果没有,最好的方法是什么 例如: @Query("From User u where u.roles contains :role") List<User> findByRole(@Param("role") Role role); @Query(“来自用户u,其中u.roles包含:role”) 列出findByRole(@Param(“角色”)角色); 用户类确实有一个集合,其中包含他们的角色 编辑:正如我建议的

有没有办法在
@Query
标记中使用“contains”函数?如果没有,最好的方法是什么

例如:

@Query("From User u  where u.roles contains :role")
List<User> findByRole(@Param("role") Role role);
@Query(“来自用户u,其中u.roles包含:role”)
列出findByRole(@Param(“角色”)角色);
用户
类确实有一个
集合
,其中包含他们的
角色

编辑:正如我建议的那样,我尝试使用like,应用程序会启动,但当执行此方法时,会出现“与预期类型不匹配”异常。

使用like关键字

@Query("From User u  where u.roles like :role")

只需使用以下查询即可完成:

@Query("From User u where :role member u.roles")

你想用关键字
'role'
选择所有角色吗?也许这不清楚,或者我想这不太容易实现。我想获取所有具有传入角色的用户。Role是一个单独的类,不是字符串,“u.roles”是一个集合,包含用户的每个角色;如果角色是一个集合,那么从用户u、角色r执行类似的操作,其中r.roleName像“%administrator%”和r.roleId=u.roleId问题是关于集合成员身份而不是子字符串你能链接到官方文档吗?你指的是什么文档?属于
@Query
注释或JPA spec?用于“成员”表达式的specs文档。您可以查看。本节定义了集合成员表达式。