【发布时间】:2017-11-03 09:24:43
【问题描述】:
很抱歉这几天问了很多问题,但我只能靠自己了。 我想确切地知道何时必须在存储库中创建新查询以及何时必须过滤服务中的数据。 例如,要通过姓名获取一个人,您可以通过 2 种以上不同的方式进行操作。
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);
}
...
}
我更喜欢使用第一个,因为它更容易实现我们什么时候使用 Example ?
【问题讨论】:
标签: spring hibernate repository