我想在我的存储库中编写一个finder方法,根据一个字段或另一个字段查找对象,同时提供一个参数,如:
@RepositoryDefinition(domainClass = Person.class, idClass = Long.class)
public interface PersonRepository extends CrudRepository<Person, Long> {
List<Person> findAllByIdOrAnotherId(someId);
}
如何在不使用SQL的情况下执行此操作?
答案 0 :(得分:2)
我在方法中添加了第二个参数,但它确实有效。
List<Transaction> findAllByIdOrParentId(Long id, Long parentId);
这只是方法的定义,因为我将相同的参数从服务传递给方法:
List<Transaction> transactions = transactionRepository.findAllByIdOrParentId(transactionId, transactionId);
答案 1 :(得分:0)
Spring Data JPA的一个很酷的事情是您可以在界面中将自定义查询定义为抽象方法。
简而言之,您只需指定要查询的@Entity
字段名称即可定义新的搜索条件。所以,假设我想findAll()
Id
和CustomId
Id
。 CustomId
和List<Person> findAllByIdOrCustomId(someId, someCustomId);
都是我的域类中的字段。我愿意:
main
有关详情,请参阅以下链接: Spring Data JPA - DEFINE QUERY METHODS