2014-09-19 18 views
8

Tôi muốn hiển thị điểm cuối mới cho kho lưu trữ của mình cũng mở rộng RevisionRepository.Nghỉ ngơi dữ liệu mùa xuân: Hiển thị điểm cuối mới cho Kho lưu trữ mở rộng Kho lưu trữ sửa đổi

@RepositoryRestResource(collectionResourceRel = "persons", itemResourceRel = "person", path = "persons") 
public interface PersonRepository extends PagingAndSortingRepository<PersonEntity, Long>, RevisionRepository<PersonEntity, Long, Integer> { 

    Revision<Integer, PersonEntity> findLastChangeRevision(@Param("id") Long id); 

    Revisions<Integer, PersonEntity> findRevisions(@Param("id") Long id); 

    Page<Revision<Integer, PersonEntity>> findRevisions(@Param("id") Long id, Pageable pageable); 

    PersonEntity findByName(@Param("name") String name); 
} 

Vấn đề của tôi ngay bây giờ, đó là những phương pháp mới không được tiếp xúc như url (findLastChangeRevision, findRevisions) và chỉ findByName là dưới url tìm kiếm. Tôi hiện không phải là rất cụ thể liên quan đến các hình thức url thực tế, miễn là nó hoạt động.

Lựa chọn duy nhất tôi biết ngay bây giờ là

  1. riêng kho sửa đổi
  2. Tạo một bộ điều khiển mới mà các bản đồ để "/", để thay thế một tạo bởi Spring liệu Nghỉ ngơi, và thêm tất cả các liên kết kho lưu trữ theo cách thủ công. Một trong những vấn đề của tôi ở đây là các liên kết của tôi sẽ được mã hóa cứng (không giống như khi liên kết đến Bộ điều khiển) và đường dẫn sẽ tương đối-- không nhất thiết là xấu, nhưng sẽ làm mọi thứ không nhất quán.
  3. Thêm liên kết đến "/" mà các bản đồ để các kho sửa đổi

Tôi có rất nhiều đặt với tùy chọn của tôi ở trên. Tôi không chắc chắn làm thế nào để tiến hành.

+0

Tôi cũng quan tâm đến câu trả lời cho câu hỏi này. Tôi chạy vào một vấn đề tương tự mà tôi muốn mở rộng các API của CrudRepository –

Trả lời

0

Bạn đã phạm sai lầm trong tên phương thức của mình. Tìm phương thức trong lớp Repository nên findByxxxxxx không findxxxxx

Đó dường như là vấn đề với mã của bạn.

@RepositoryRestResource(collectionResourceRel = "persons", itemResourceRel = "person", path = "persons") 
public interface PersonRepository extends PagingAndSortingRepository<PersonEntity, Long>, RevisionRepository<PersonEntity, Long, Integer> { 

    Revision<Integer, PersonEntity> findByLastChangeRevision(@Param("id") Long id); 

    Revisions<Integer, PersonEntity> findByRevisions(@Param("id") Long id); 

    Page<Revision<Integer, PersonEntity>> findByRevisions(@Param("id") Long id, Pageable pageable); 

    PersonEntity findByName(@Param("name") String name); 
} 
+0

Tôi nghĩ rằng vấn đề là '' findLastChangeRevision'', '' findRevisions'' và '' findRevisions'' là các phương thức được hiển thị bởi RevisionRepository – Chad

+0

Bạn cần phải thêm một hành động điều khiển tùy chỉnh để hiển thị envers –

Các vấn đề liên quan