⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 orders.java

📁 jboss4 + Mysql +ejb3.0 EJB3 简单例子
💻 JAVA
字号:
/**
 * Copyright (c)上海烟草(集团)公司与上海康时信息系统有限公司。
 */
package com.myejb.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;

/**
 * Orders 实体Bean
 * @author xywang
 * @since 2009-2-13
 * @version 1.0
 */
@SuppressWarnings("serial")
@Entity
@Table(name="Orders")
public class Orders implements Serializable{
    private Integer orderid;
    private Float amount;
    private Set<OrderItem> orderItems = new HashSet<OrderItem>();
    private Date createdate;
    private Person ower;
    public Orders(){}
    public Orders(Float amount,Person ower,Date createdate){
        this.amount = amount;
        this.ower   = ower;
        this.createdate = createdate;
    }
    @Id
    @GeneratedValue
    public Integer getOrderid(){
        return orderid;
    }
    public void setOrderid(Integer orderid){
        this.orderid = orderid;
    }
    @ManyToOne(cascade=CascadeType.ALL,optional=false)
    @JoinColumn(name="person_id")
    public Person getOwer(){
        return ower;
    }
    public void setOwer(Person ower){
        this.ower = ower;
    }
    /**
     * 一对多关系@OneToMany的属性有:
     * targetEntity:Class类型的属性。定义关系类的类型,默认是该成员属性对应的类类型,所以通常不需要提供定义。
     * mappedBy:String类型的属性。定义类之间的双向关系。如果类之间是单向关系,不需要提供定义,
     *          如果类和类之间形成双向关系,我们就需要使用这个属性进行定义,否则可能引起数据一致性的问题。
     * cascade:CascadeType[]类型。该属性定义类和类之间的级联关系。(CascadeType.PERSIST级联新建,CascadeType.REMOVE级联删除,CascadeType.REFRESH级联刷新,CascadeType.MERGE级联更新)
     * fatch:FetchType类型的属性。FetchType.EAGER:关系类(本例是OrderItem类)在主类(本例是Orders类)加载的时候同时加载,
     *                           FetchType.LAZY: 关系类(本例是OrderItem类)在被访问时才加载。默认是FetchType.LAZY。
     * 排序:@OrderBy(value="id ASC")注释指明加载OrderItem时按id的升序排序。                                
     */
    @OneToMany(mappedBy="order",cascade=CascadeType.ALL,fetch=FetchType.LAZY)
    @OrderBy(value="id ASC")
    public Set<OrderItem> getOrderItems(){
        return orderItems;
    }
    public void setOrderItems(Set<OrderItem> orderitems){
        this.orderItems = orderitems;
    }
    public Float getAmount(){
        return amount;
    }
    public void setAmount(Float amount){
        this.amount = amount;
    }
    public Date getCreatedate(){
        return createdate;
    }
    public void setCreatedate(Date createdate){
        this.createdate = createdate;
    }    
    public void addOrderItem(OrderItem orderitem){
        if(!this.orderItems.contains(orderitem)){
            this.orderItems.add(orderitem);
            orderitem.setOrder(this);
        }
    }
    public void removeOrderItem(OrderItem orderitem){
        orderitem.setOrder(null);
        this.orderItems.remove(orderitem);
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -