关系映射
package com.hujuan.bean;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name
="orders")
public class Order {
    
    
private String id;
    
private Float amount;
    
private Set<OrderItem> items = new HashSet<OrderItem>();
    
    @Id @Column(length
=10)
    
public String getId() {
        
return id;
    }
    
public void setId(String id) {
        
this.id = id;
    }
    @Column(nullable
=false)
    
public Float getAmount() {
        
return amount;
    }
    
public void setAmount(Float amount) {
        
this.amount = amount;
    }
    
//级联操作
    @OneToMany(cascade= {CascadeType.REFRESH,CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE},fetch=FetchType.LAZY,mappedBy="order")
    
public Set<OrderItem> getItems() {
        
return items;
    }
    
public void setItems(Set<OrderItem> items) {
        
this.items = items;
    }
    
    
public void addOrderItem(OrderItem orderItem){
        orderItem.setOrder(
this);
        
this.items.add(orderItem);
    }
}
Cascade级联操作
CascadeType.
PERSIST 级联持久化(保存)操作
CascadeType.
MERGE 级联更新(合并)操作
CascadeType.
REFRESH 级联刷新操作,只会查询获取操作
CascadeType.
REMOVE 级联删除操作
CascadeType.
ALL 级联以上全部操作
Fetch
抓取是否延迟加载,默认情况一的方为立即加载,多的一方为延迟加载
mappedBy
关系维护
mappedBy=
"order" 表示在OrderItem类中的order属性来维护关系
package com.hujuan.bean;

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;

@Entity
public class OrderItem {
    
    
private Integer id;
    
private String productName;
    
private Float sellPrice = 0f;
    
private Order order;
    
    
    @Id @GeneratedValue
    
public Integer getId() {
        
return id;
    }
    
public void setId(Integer id) {
        
this.id = id;
    }
    @Column(length
=30,nullable=false)
    
public String getProductName() {
        
return productName;
    }
    
public void setProductName(String productName) {
        
this.productName = productName;
    }
    @Column(nullable
=false)
    
public Float getSellPrice() {
        
return sellPrice;
    }
    
public void setSellPrice(Float sellPrice) {
        
this.sellPrice = sellPrice;
    }
    
//optional=true表示该对象(Order)是可选的,对象(Order)可以不存在
    
//值为false表示不可选即该对象(Order)必须存在,则在数据库中的外键就不能为null)
    @ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
    
//定义外键名称
    @JoinColumn(name="order_id")
    
public Order getOrder() {
        
return order;
    }
    
public void setOrder(Order order) {
        
this.order = order;
    }
}




只有注册用户登录后才能发表评论。


网站导航:
 

posts - 28, comments - 5, trackbacks - 0, articles - 1

Copyright © 胡娟