@Entity
@Table(name = "t_order")
public class Order {
@Id @GeneratedValue
private Long id;
@Temporal(TemporalType.TIMESTAMP)
private Date createDate;
/**
* 通过映射表ORDER_ORDER_LINE进行一对多关联。
*/
@OneToMany(cascade = {CascadeType.PERSIST})
@JoinTable(name = "order_order_line",
joinColumns = @JoinColumn(name = "order_id"),
inverseJoinColumns = @JoinColumn(name = "order_line_id"))
private List<OrderLine> orderLines;
// Constructors, getters, setters
}
@Entity
@Table(name = "order_line")
public class OrderLine {
@Id @GeneratedValue
private Long id;
private String item;
private Double unitPrice;
private Integer quantity;
// Constructors, getters, setters
}
CREATE TABLE T_ORDER (
ID BIGINT,
CREATEDATE TIMESTAMP,
PRIMARY KEY (ID)
);
CREATE TABLE ORDER_LINE (
ID BIGINT,
ITEM VARCHAR(50),
UNITPRICE DOUBLE,
QUANTITY INTEGER,
PRIMARY KEY (ID)
);
CREATE TABLE ORDER_ORDER_LINE (
ORDER_ID BIGINT,
ORDER_LINE_ID BIGINT,
PRIMARY KEY (ORDER_ID, ORDER_LINE_ID),
FOREIGN KEY (ORDER_ID) REFERENCES T_ORDER(ID),
FOREIGN KEY (ORDER_LINE_ID) REFERENCES ORDER_LINE(ID)
);