Hibernate注解详解

来源:互联网 发布:linux下部署jira 编辑:程序博客网 时间:2024/06/07 08:55

@Entity(name="tableName"):注解将一个类声明为一个实体bean。

   属性:

   name - 可选,对应数据库中的一个表。若表名与实体类名相同,则可以省略。

@Table(name="",catalog="",schema="") :通常和@Entity 配合使用,只能标注在实体的class 定义处,表示实体对应的数据库表的信息。

属性:

name - 可选,表示表的名称,默认地,表名和实体名称一致,只有在不一致的情况下才需            要指定表名

catalog - 可选,表示Catalog名称,默认为 Catalog("").

schema - 可选 , 表示 Schema 名称 , 默认为Schema("").

@Id :定义了映射到数据库表的主键的属性,一个实体只能有一个属性被映射为主键

@GeneratedValue(strategy=GenerationType,generator=""):用于定义主键生成策略。

Strategy :表示主键生成策略

Generator:表示主键生成器的名称,这个属性通常和ORM框架相关 , 例如:

         Hibernate 可以指定 uuid 等主键生成方式

@Version - 可以在实体bean中使用@Version注解,通过这种方式可添加对乐观锁定的支持

@Basic - 用于声明属性的存取策略:

@Basic(fetch=FetchType.EAGER)   即时获取(默认的存取策略)

@Basic(fetch=FetchType.LAZY)    延迟获取

@Temporal - 用于定义映射到数据库的时间精度:

@Temporal(TemporalType=DATE)       日期

@Temporal(TemporalType=TIME)       时间

@Temporal(TemporalType=TIMESTAMP) 两者兼具

@Column - 可将属性映射到列

属性:

name - 可选,表示数据库表中该字段的名称,默认情形属性名称一致

nullable - 可选,表示该字段是否允许为 null,默认为 true

unique - 可选,表示该字段是否是唯一标识,默认为 false

length - 可选,表示该字段的大小,仅对 String 类型的字段有效,默认值255.

insertable - 可选,表示在ORM框架执行插入操作时,该字段是否应出现INSETRT               语句中,默认为 true

updateable - 可选,表示在ORM 框架执行更新操作时,该字段是否应该出现在               UPDATE 语句中,默认为 true. 对于一经创建就不可以更改的字段,该           属性非常有用,如对于 birthday 字段。

columnDefinition - 可选,表示该字段在数据库中的实际类型。通常ORM 框架可以根     据属性类型自动判断数据库中字段的类型,但是对于Date 类型仍无法确定数据       库中字段类型究竟是 DATE,TIME 还是 TIMESTAMP. 此外 ,String 的默认映射类型为 VARCHAR, 如果要将 String 类型映射到特定数据库的 BLOB或 TEXT 字段类型,该属性非常有用。

@Transient - 可选,表示该属性并非一个到数据库表的字段的映射

@OneToOne 一对一映射,mappedBy同样指定由谁来进行维护关联关系

@OneToMany指定了一对多的关系

@ManyToOne指定了多对一的关系

@ManyToMany 指定了多对多的映射

@JoinColumn 指定外键名称

0 0