存储库中的谓词?

时间:2014-06-16 12:30:25

标签: hibernate jpa

我正在使用JPA Repository。

public interface XXXTransactionRepository extends AbstractRepository<XXXTransaction> {
    public List<XXXTransaction> findByUserId(Long id);
}

我可以在像这样的Repository方法中传递谓词吗?

public List<XXXTransaction> findAll(Predicate predicate);

1 个答案:

答案 0 :(得分:1)

不,但您可以使用可以传递规范的AbstractRepository.fineOne(规范规范)。 这是一个示例用法:

    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);
            }
    });

您可以在http://www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-part-four-jpa-criteria-queries/

了解有关规格的更多信息