2014-10-08 58 views
4

我很難搞清楚如何使用@RepositoryRestResource接口在兩個相當簡單的實體之間創建多對多關係。如何通過Spring的@RepositoryRestResource REST API在多對多關係中添加元素?

例如,我有這樣一個簡單的親子實體關係:

@Entity 
public class ParentEntity { 
    @Id 
    @GeneratedValue 
    private Long id; 

    @ManyToMany 
    private List<ChildEntity> children; 
} 

@Entity 
public class ChildEntity { 
    @Id 
    @GeneratedValue 
    private Long id; 

    @ManyToMany(mappedBy="children") 
    private List<ParentEntity> parents; 
} 

我的倉庫使用的香草春@RepositoryRestResource HATEOS API:

@RepositoryRestResource(collectionResourceRel = "parents", path = "parents") 
public interface ParentRepository extends PagingAndSortingRepository<ParentEntity, Long> { 
} 

@RepositoryRestResource(collectionResourceRel = "children", path = "children") 
public interface ChildRepository extends PagingAndSortingRepository<ChildEntity, Long> { 
} 

我已經成功地在使用POST來創建單獨的ParentEntity和ChildEntity,但我似乎無法弄清楚如何使用內置接口來放置/修補兩者之間的關係。

看來我應該可以使用PUT將JSON發送到類似http://localhost:8080/api/parents/1/children的東西,但到目前爲止我還沒有找到可行的結構。

回答

7

我在這裏找到答案:How to update reference object in Spring-data rest?

通過使用「內容類型:文本/ URI列表」,而不是JSON,它可以將一個資源「添加」到集合與PUT和傳遞URI。您可以使用DELETE刪除資源。

經過一番挖掘,我發現Spring文檔確實描述了這個:http://docs.spring.io/spring-data/rest/docs/2.2.0.RELEASE/reference/html/#repository-resources.association-resource

+0

感謝您給出答案和文檔的鏈接。看到一個具體的例子後,這部分文檔更有意義。 – 2016-09-14 19:25:49

相關問題