我试图通过这个链接模拟这种关系http://www.javaworld.com/javaworld/jw-01-2008/images/datamodel.gif
它是订单和产品之间通常的多对多关系,但我不知道如何在Join表中添加额外的列.
@Entity
@Table(name = "Orders")
public class Order {
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "ORDER_LINES", joinColumns = { @JoinColumn(name = "ORDER_ID") }, inverseJoinColumns = { @JoinColumn(name = "PROD_ID") })
private Set<Product> products;
}
@Entity
@Table(name="PRODUCTS")
public class Product {
@ManyToMany(mappedBy="products")
private Set<Order> orders;
}
Run Code Online (Sandbox Code Playgroud)
如何在JPA 2.0中添加Join Table extra属性?
谢谢
Mik*_*unu 22
在JPA(2.0)中没有关于具有附加持久属性的概念.这就是为什么与财产的关系实际上是中间实体.
从订单和产品实体,您需要与新实体的一对多关系.由于双向关系,新实体将与订单和产品具有多对一关系.
你需要去做这样的事情(只显示关系,id和其他映射被剥离):
@Entity
@Table(name="order_item")
public class OrderItem {
@ManyToOne
private Order order;
@ManyToOne
private Product product;
}
@Entity
public class Order {
@OneToMany (mappedBy = "order")
private Set<OrderItem> orderItems;
}
@Entity
public class Product {
@OneToMany(mappedBy = "product")
private Set<OrderItem> orderItems;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9267 次 |
| 最近记录: |