2014-02-18 50 views
4

是否可以公開使用連接實體(包含額外數據列)的manytomany關係,下面是我的實體;spring-data-rest,與連接表的多對多關係

我試圖讓'購買'顯示在REST中,我把'產品'作爲工作REST映射的一個例子;

@Entity 
public class User { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long id; 

    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, targetEntity = Purchase.class, orphanRemoval = true) 
    @JoinColumn(name = "user_id", updatable = false) 
    private List<Purchase> purchases = new ArrayList<>(); 

    @ManyToMany 
    @JoinColumn(name = "user_id", updatable = false) 
    private List<Product> products = new ArrayList<>(); 

} 

@Entity 
public class Product { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    private String name; 

} 

@Entity 
public class Purchase implements Serializable { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    Long id; 

    @ManyToOne 
    @JoinColumn(name = "user_id", referencedColumnName = "id") 
    private User user; 

    @ManyToOne(targetEntity = Prodect.class) 
    @JoinColumn(name = "product_id", referencedColumnName = "id") 
    private Product product; 

    @Column(name = "purchase_date") 
    private Date purchaseDate; 

} 

所以,如果我發送REST呼叫;

[GET HTTP://本地主機:8080/web應用/用戶/ 1]

它返回[HTTP://本地主機:8080/web應用/用戶/ 1 /產品]的聯繫,但不是[HTTP :// localhost:8080/webapp/users/1/purchases]

+0

可以提供HTTP的結果://本地主機:8080/web應用/用戶/ 1 –

+0

{ 「_links」:{ 「自我」:{ 的 「href」:「HTTP://本地主機:8080/web應用/用戶/ 1" }, 「產品」:{ 的 「href」: 「HTTP://本地主機:8080/web應用/用戶/ 1 /產品」 } }, 「LASTUPDATED」:1392686385130 「登錄「:」user_login_1「 } – wenic

+0

mmm,無法格式化爲註釋中的代碼? – wenic

回答

3

找出問題所在;我需要爲Purchase實體創建一個JpaRepository。不久,我補充說,用於購買的REST鏈接可用。

相關問題