Възможно ли е да се изложи връзка много-много-много, която използва съединителен обект (който съдържа допълнителни колони с данни), по-долу са моите обекти;
Опитвам се да накарам „покупки“ да се показват в 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 повикването;
[ВЗЕМЕТЕ http://localhost:8080/webapp/users/1]
Той връща връзки за [http://localhost:8080/webapp/users/1/products], но не и за [http://localhost:8080/webapp/users/1/purchases]