【发布时间】:2014-03-18 00:38:10
【问题描述】:
是否可以公开使用连接实体(包含额外数据列)的多对多关系,下面是我的实体;
我正在尝试在 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://localhost:8080/webapp/users/1]
它返回 [http://localhost:8080/webapp/users/1/products] 的链接,但不返回 [http://localhost:8080/webapp/users/1/purchases] 的链接
【问题讨论】:
-
你能提供localhost:8080/webapp/users/1的结果吗
-
{ "_links" : { "self" : { "href" : "localhost:8080/webapp/users/1" }, "products" : { "href" : "localhost:8080/webapp/users/1/products" } }, "lastUpdated" :1392686385130“登录”:“user_login_1”}
-
嗯,不能在 cmets 中格式化为代码?
标签: java spring spring-data spring-data-jpa spring-data-rest