您的位置:首页 > 其它

学习hibernate_03_实体常用的hibernate注解

2017-01-24 00:19 531 查看
/**
* @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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息