如何通过Spring方法名查询实现IN表达式,替代@Query注解?
Spring Data JPA方法名查询实现IN条件
要实现你给出的SQL查询,不用@Query注解的话,直接利用Spring Data JPA的方法名命名规则即可,具体步骤如下:
确认实体类与字段映射
假设数据库表COMPANIES对应的Java实体类是Company,表字段COMPANY_ADDRESS对应实体的驼峰命名属性companyAddress。编写Repository接口方法
在你的JpaRepository(或CrudRepository)接口中定义如下方法:List<Company> findByCompanyAddressIn(List<String> addresses);方法名遵循
findBy+ 实体属性名(驼峰) +In的规则,参数接收集合类型(List、Set均可),用来传递IN条件的取值列表。调用方法执行查询
调用时传入包含目标地址的集合即可,示例代码:List<String> targetAddresses = Arrays.asList("Texas", "California"); List<Company> companies = companyRepository.findByCompanyAddressIn(targetAddresses);
Spring Data JPA会自动解析方法名,生成与你给出的原生SQL逻辑完全一致的查询语句。
内容的提问来源于stack exchange,提问作者Lewis12
相关产品推荐
相关产品推荐

