2017-08-03 4 views
1

私はSpring Data RESTをSpring Boot 1.5.4で使用していますが、問題があります。SDR /検索マッピングの衝突

私は、リポジトリに定義:私は特定のGETメソッドを必要とする

public interface TicketRepository extends JpaRepository<Ticket, Long> { 

    @RestResource(path = "find-by-ticket-list-id") 
    Page<Ticket> findByTicketListIdOrderByPosition(@Param("ticketListId") Long ticketListId, Pageable pageable); 
} 

を。だから私は、コントローラに定義:

@RepositoryRestController 
public class TicketController { 

    @GetMapping("/tickets/{id}") 
    public ResponseEntity<?> getTicket(@PathVariable Long id, PersistentEntityResourceAssembler assembler) { 
     ... 
    } 
} 

そして、私は、検索リソースのリストを取得しようとすると、今、私はエラーに取得を

型の値を変換するのに失敗しました「はjava.lang.String型」 「java.lang.Longの」

必要なタイプ に私は、これは/tickets/{id}/tickets/searchの衝突によるものであることを理解し、私はこれに対処する方法を理解していません。私は@OrdergetTicketのメソッドの前で、TicketControllerの定義の前に置こうとしましたが、何も変わりませんでした。

両方のURIを解決するにはどうすればよいですか?

答えて

1

URIテンプレートパターンで正規表現を使用:

@GetMapping("/tickets/{id:\\d+}") 
public ResponseEntity<?> getTicket(@PathVariable Long id, PersistentEntityResourceAssembler assembler) { 
    ... 
} 

More info ...