2016-06-30 123 views
0

我有一个自定义方法的春天数据JPA库修改参数值:Spring数据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

难道你只是在调用存储库方法之前转换字符串?

水木清华这样的:

entityRepository.findByNameIgnoreCase(transformNameIntoSomethingElse(name)); 
+0

是的,这是明确可能:)。我只是好奇,如果有一些更透明的方式来做到这一点,我很惊讶,转换器没有工作:)。 – vlastikcz

相关问题