Order.java
OrderItem.java
- package com.entity;
-
- import java.io.Serializable;
-
- import javax.persistence.CascadeType;
- import javax.persistence.Column;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.Id;
- import javax.persistence.JoinColumn;
- import javax.persistence.ManyToOne;
- import javax.persistence.Table;
-
- @Entity
- @Table(name = "OrderItems")//name = "OrderItems",表示本实体对应数据库表 OrderItems,可选。
- public class OrderItem implements Serializable {
-
- private Integer id;//作为主键
- private String productname;//产品名称
- private Float price;//价格
- private Order order;//对应的订单
-
- /*
- * 无参数构造器可别忘了
- */
- public OrderItem() {
- }
-
- /*
- * 带参数的构造器,用于初始化实例变量
- */
- public OrderItem(String productname, Float price) {
- this.productname = productname;
- this.price = price;
- }
-
- @Id
- @GeneratedValue
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- @Column(name="productname")
- public String getProductname() {
- return productname;
- }
-
- public void setProductname(String productname) {
- this.productname = productname;
- }
-
- @Column(name="price")
- public Float getPrice() {
- return price;
- }
-
- public void setPrice(Float price) {
- this.price = price;
- }
-
- /*
- * @ManyToOne指明OrderItem和Order之间为多对一关系,多个OrderItem实例关联的都是同一个Order对象。
- * 其中的属性和@OneToMany基本一样,但@ManyToOne注释的fetch属性默认值是FetchType.EAGER。
- *
- * optional 属性是定义该关联类对是否必须存在,值为false时,关联类双方都必须存在,如果关系被维护端不存在,查询的结果为null。
- * 值为true 时, 关系被维护端可以不存在,查询的结果仍然会返回关系维护端,在关系维护端中指向关系被维护端的属性为null。
- * optional 属性的默认值是true。举个例:某项订单(Order)中没有订单项(OrderItem),如果optional 属性设置为false,
- * 获取该项订单(Order)时,得到的结果为null,如果optional 属性设置为true,仍然可以获取该项订单,但订单中指向订单项的属性为null。
- * 实际上在解释Order 与OrderItem的关系成SQL时,optional 属性指定了他们的联接关系optional=false联接关系为inner join,
- * optional=true联接关系为left join。
- *
- * @JoinColumn:指明了被维护端(OrderItem)的外键字段为order_id,它和维护端的主键(orderid)连接,unique= true 指明order_id列的值不可重复。
- */
- @ManyToOne(cascade = CascadeType.REFRESH, optional = false)
- @JoinColumn(name = "order_id",referencedColumnName="orderid")
- public Order getOrder() {
- return order;
- }
-
- public void setOrder(Order order) {
- this.order = order;
- }
- }
|