我有一个带有自定义方法的Spring Data JPA存储库:
@Repository
public interface EntityRepository extends PagingAndSortingRepository<Entity, Long> {
List<Entity> findByNameIgnoreCase(String name);
}
我想在调用方法之前以某种方式修改name
(例如,转义%
和_
,请参阅https://jira.spring.io/browse/DATAJPA-216)值。
我建议的解决方案是创建一个CustomString
和一个Converter<CustomString, String>
,其中包含所需的业务逻辑。但即使我将签名更改为findByNameIgnoreCase(CustomString name)
,也不会使用converter
,而原始CustomString
会传递给SimpleJpaRepository
。
如果不创建任何额外的Services
并包裹repository
来电,有没有其他方法可以做到这一点?
答案 0 :(得分:0)
在调用存储库方法之前,您是否只能转换字符串?
像这样的Smth:entityRepository.findByNameIgnoreCase(transformNameIntoSomethingElse(name));