1. 数据库关系
@Embeddable
public class BasicOrderPK implements Serializable {
...
// 联合主键的两个字段单独生成一个可嵌入的对象
@Column(name="order_id")
private int orderId;
@Column(name="goods_code")
private int goodsCode;
...
}
@Entity
@Table(name="basic_order")
@NamedQuery(name="BasicOrder.findAll", query="SELECT b FROM BasicOrder b")
public class BasicOrder implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
// 注入主键对象
private BasicOrderPK id;
//bi-directional many-to-one association to BasicUser
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="user_name")
private BasicUser basicUser;
//bi-directional many-to-one association to OrderDetail
@OneToMany(mappedBy="basicOrder")
private List<OrderDetail> orderDetails;
}
@Entity
@Table(name="order_detail")
@NamedQuery(name="OrderDetail.findAll", query="SELECT o FROM OrderDetail o")
public class OrderDetail implements Serializable {
.....
//bi-directional many-to-one association to BasicOrder
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumns({
// 分别匹配主表联合主键的两个字段
@JoinColumn(name="order_id", referencedColumnName="order_id"),
@JoinColumn(name="goods_code", referencedColumnName="goods_code")
})
private BasicOrder basicOrder;
....
}

本文探讨了如何在Java持久化API(JPA)中设置联合主键,并将其作为从表的外键进行管理。通过实例解析了JPA配置联合主键和外键的步骤,详细介绍了相关数据库关系的建立和操作。
2056

被折叠的 条评论
为什么被折叠?



