2014-12-26 43 views
2

目前我們已經暴露了我們的方法是這樣如何刪除春數據與休息運營工作

@RestController 
@RequestMapping("/app/person") 
public class PersonResource { 

    @Timed 
    public void delete(@PathVariable Long id) { 
     log.debug("REST request to delete Person: {}", id); 
     personRepository.delete(id); 
    } 
} 

這種方法的操作,在輸入輸出方面,是用戶開發者非常清楚。

這篇文章http://spring.io/guides/gs/accessing-data-rest/顯示瞭如何直接公開JPARepository,以避免需要服務層。

@RepositoryRestResource(collectionResourceRel="people", path="people") 
public interface PersonRepository extends JpaRepository<PersonEntity, Long> { 

} 

這對我來說並不明顯,我如何能夠使用PathVariable Long id進行「刪除操作」。

有一篇關於此主題的優秀文章。 https://github.com/spring-projects/spring-data-rest/wiki/Configuring-the-REST-URL-path 但它實際上顯示瞭如何禁止導出刪除操作。

回答

2

如文檔here所示,Spring Data REST將爲您聲明的存儲庫公開項目資源。因此,您需要做的就是發現要刪除的資源的URI並向其發出一個DELETE請求。

+0

請原諒我的無知Oliver,你是說「你需要做的是發現要刪除的資源的URI」? – user721025

+0

他意味着你需要在服務器上獲取該對象的URL,所以你可以通過發送一個DELETE來刪除它:DELETE http:// localhost/app/persons/user721025其中user721025是你的用戶ID/long。 – Adam

+0

使用RepositoryEventHandler刪除實體時,是否可以向客戶端發送消息? –