使用@RepositoryDe​​finition和JpaSpecificationExecutor方法并不起作用

时间:2015-03-13 07:18:01

标签: spring spring-data spring-data-jpa querydsl

我有一个Spring Data存储库类,如:

@RepositoryDefinition(domainClass = Book.class, idClass = Long.class)
public interface BookRepository {

    List<Book> findAll();

    List<Book> findByOrderByPublishDateDesc();

    Book findOne(Long id);

    Book save(Book book);

    boolean exists(Long id);

    void delete(Long id);

    Iterable<Book> findAll(Predicate predicate, OrderSpecifier<?>... orders);
}

标准的crud方法确实有效,但findAll(来自JpaSpecificationExecutor)并不起作用。

@RepositoryDefinition存储库是否支持使用querydsl(或jpa规范)谓词感知方法?

1 个答案:

答案 0 :(得分:1)

根据javadoc

  

用于划分接口的注释应为其创建存储库代理。使用RepositoryDefinition注释接口将导致与扩展Repository相同的行为。

所以它只支持Repository上可用的基本集(至少这是我从文档中推断出来的)。如果你想要更多,你可能需要在添加注释旁边扩展特定的界面。

@RepositoryDefinition(domainClass = Book.class, idClass = Long.class)
public interface BookRepository extends JpaSpecificationExecutor<Book> {}