很抱歉,这些天我问了很多问题,但我只能靠自己。
我想知道何时必须在存储库中创建新查询,何时必须在服务中过滤数据。
例如,你可以通过两种以上不同的方式来获得一个人的名字。
public interface PersonRepository extends JpaRepository<Person, Integer> {
@Query("SELECT p FROM Person p WHERE LOWER(p.name) = LOWER(:name)")
Person findOneByName(@Param("name") String name);
}
和
@Service
public class PersonService implements IService<Person,Integer>{
...
public Person findOneByName(String name){
Person personFilter = new Person();
personFilter.setName(name);
ExampleMatcher matcher = ExampleMatcher.matching().withIgnoreCase().withIgnoreNullValues();
Example<Person > example = Example.of(personFilter,matcher);
return personRepository.findOne(example);
}
...
}
我更喜欢使用第一个,因为它更容易实现,我们什么时候使用示例?