Spring Data JPA / Boot:findBy ...或

时间:2016-10-13 14:35:18

标签: java spring-boot spring-data spring-data-jpa

我想在我的存储库中编写一个finder方法,根据一个字段或另一个字段查找对象,同时提供一个参数,如:

@RepositoryDefinition(domainClass = Person.class, idClass = Long.class)
public interface PersonRepository extends CrudRepository<Person, Long> {

    List<Person> findAllByIdOrAnotherId(someId);
}

如何在不使用SQL的情况下执行此操作?

2 个答案:

答案 0 :(得分:2)

我在方法中添加了第二个参数,但它确实有效。

List<Transaction> findAllByIdOrParentId(Long id, Long parentId);

这只是方法的定义,因为我将相同的参数从服务传递给方法:

List<Transaction> transactions = transactionRepository.findAllByIdOrParentId(transactionId, transactionId);

答案 1 :(得分:0)

Spring Data JPA的一个很酷的事情是您可以在界面中将自定义查询定义为抽象方法。

简而言之,您只需指定要查询的@Entity字段名称即可定义新的搜索条件。所以,假设我想findAll() IdCustomId IdCustomIdList<Person> findAllByIdOrCustomId(someId, someCustomId); 都是我的域类中的字段。我愿意:

main

有关详情,请参阅以下链接: Spring Data JPA - DEFINE QUERY METHODS