首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate引语入门

2012-10-09 
hibernate注解入门1、 传统上,Hibernate的配置依赖于外部xml文件:数据库映射被定义为一组XML映射文件,并在

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   嗯,………………

热点排行