Reputation: 119
I am using JPA Repository.
public interface XXXTransactionRepository extends AbstractRepository<XXXTransaction> {
public List<XXXTransaction> findByUserId(Long id);
}
Can I pass predicate in Repository methods like this?
public List<XXXTransaction> findAll(Predicate predicate);
Upvotes: 0
Views: 276
Reputation: 181
No, but you can use the AbstractRepository.fineOne(Specification spec) in which you can pass a Specification. Here's a sample usage:
xxxTransactionRepository.findOne(new Specificaiton<XXXTransaction>(){
@Override
public Predicate toPredicate(final Root<XXXTransaction> root, final CriteriaQuery<?> query, final CriteriaBuilder cb) {
return cb.equal(root.get("fieldName",someVar);
}
});
You can read more about Specifications at http://www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-part-four-jpa-criteria-queries/
Upvotes: 1