@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) );