hibernate注解入门
1、 传统上,Hibernate的配置依赖于外部xml文件:数据库映射被定义为一组XML映射文件,并在启动时进行加载。
2、 使用Hibernate Annotation,你至少需要具备Hibernate3.2和Java 5。除了标准的Hibernate jar和依赖项之外,你还需要Hibernate-annotation.jar和java持久性API。
——————————注解命令说明————————————————
1、 @Entity(name="EntityName") 必须, name为可选,对应数据库中的一个表
2、 tablename=""catalog="",schema="" 通常和@Entity配合使用(可选)
3、 @id 必须,定义映射到数据库表的主键的属性,一个实体只能有一个id,置于getXXX()前
4、 GeneratedValue(strategy=GenerationType, generator="")可选
strategy表示主键生成策略,有Auto,Indentity,sequence和table 4种
generator:表示生成器的名称,此属性通常和ORM框架相关,例如Hibernate可以指定uuid等主键生成方式。
例子: @id
@GeneratedValue(strategy=strategyType.sequence)
public int getPK(){return pk;}
5、 @Basic(fetch=FetchType,optional=true)可选
表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的getXXX()方法,默认即为@Basic
fetch: 表示读属性的读取策略:Eager,lazy
optional:表示该属性是允许为null,默认为true
6、 @column: 描述了数据库表中该字段的详细信息定义。有name、nullable、unique、length、insertable、updateable
columnDefinition:表示该字段在数据库中的实际类型,如(date,blob,text等)
7、 @Transient: 表示该属性并非一个到数据库表字段的映射,ORM将忽略它
8、 @ManyToOne(fetch=FetchType,cascade=CascadeType)
cascadeType: 表示默认的级联操作策略,可以指定all、presisit,merge,reference和move中的若干组合,默认为无级联操作
targetEntity:表示该属性关联的实体类型(通常不必指定,可以 自行配好)
9、 @joinColumn 与column类似,其描述的不是一个简单字段而是一个关联字段。
10、@oneToMany
11、@oneToone
12、@manyTomany
本质上是两个一对多关联,但在ManyToMany描述中,中间表是由ORM框架自动处理
mappedBy: 表示多对多关联的另一个实体类的对应属性集合
13、 @mappedSuperClass: 可选, 可以将超类的JPA注释传递给子类,使子类能够继承超类的JPA注解。
14、 Embedded:可选,将几个字段组成一个类,并作为整个Entity的一个属性,例如:user包括id,name,city,street,zip属性,希望city,street,zip属性映射为address对象,这样user对象将具有city,street,address这三个属性。Address对象必须定义为@Embededable
@embedable
public class address {city,street,zip}
@Entity
public class user{
@embeded
public address getAddress(){... ...}
}
——————————Hibernate验证注解————————————————
@pattern @length @email @range @min @max
@size
此上每隔注解都可能有一个message属性,用于在验证失败后返回信息 1 楼 piaoxue_x 2011-09-21 嗯,………………