學習hibernate_03_實體常用的hibernate註解

/**
 * @Entity 聲明一個類爲實體Bean
 * @Table(name = "xx")指定實體類映射的表,如果表名和實體類名一致,可以不指定
 */
@Entity
@Table(name = "SYS_DICTIONARY")
public class DicDomain {

    /**
      * @Id 映射主鍵屬性,這裏採用uuid的主鍵生成策略
      * @GeneratedValue —— 註解聲明瞭主鍵的生成策略。該註解有如下屬性
      * strategy 指定生成的策略,默認是GenerationType. AUTO
      * GenerationType.AUTO 主鍵由程序控制
      * GenerationType.TABLE 使用一個特定的數據庫表格來保存主鍵
      * GenerationType.IDENTITY 主鍵由數據庫自動生成,主要是自動增長類型
      * GenerationType.SEQUENCE 根據底層數據庫的序列來生成主鍵,條件是數據庫支持序列
      * generator 指定生成主鍵使用的生成器
      * 
      * unique、nullable、insertable很容易理解,想說一點,這個一般在數據庫裏設置。
      */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID", unique = true, nullable = false)
    private Integer id;

    @Column(name = "NAME")
    private String name;

     /**
      * @Temporal - 用於定義映射到數據庫的時間精度
      * @Temporal(TemporalType=DATE) 日期
      * @Temporal(TemporalType=TIME) 時間
      * @Temporal(TemporalType=TIMESTAMP) 兩者兼具
      * 下面的例子在MySQL數據庫裏存儲的樣子類似:2015-09-14 16:00:22
      */
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "CREATETIME", length = 19)
    private Date createtime;

     /**
      * @Transient表示該屬性並非一個到數據庫表的字段的映射,ORM框架將忽略該屬性
      * 果一個屬性並非數據庫表的字段映射,就務必將其標示爲@Transient,否則,ORM框架默認其註解爲@Basic
      */
    @Transient
    private int age; 

    /**
      * cascade:級聯,它可以有有五個值可選,分別是:
      * CascadeType.PERSIST:級聯新建
      * CascadeType.REMOVE : 級聯刪除
      * CascadeType.REFRESH:級聯刷新
      * CascadeType.MERGE  : 級聯更新
      * CascadeType.ALL    : 以上全部四項
      * 
      * @JoinColumn:主表外鍵字段
      * @OneToMany mappedBy: many類關聯字段所在的屬性
      * 
      * fetch:加載策略,它有兩個值可選,分別是:
      * FetchType.LAZY:懶加載,加載一個實體時,定義懶加載的屬性不會馬上從數據庫中加載。
      * FetchType.EAGER:急加載,加載一個實體時,定義急加載的屬性會立即從數據庫中加載。
      */
    @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "typeid", updatable = false, insertable = false)
    private DicTypeDomain dictype;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCreatetime() {
        return createtime;
    }

    public void setCreatetime(String createtime) {
        this.createtime = createtime;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public DicTypeDomain getDictype() {
        return dictype;
    }

    public void setDictype(DicTypeDomain dictype) {
        this.dictype = dictype;
    }

}
發佈了56 篇原創文章 · 獲贊 31 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章