/**
* @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;
}
}
學習hibernate_03_實體常用的hibernate註解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.