Hibernate - 使用注解完成映射

除了使用XML配置来映射对象和数据库表,还可以使用注解来完成持久化。使用注解需要导入Hibernate Annotations扩展包

@Entity -加在类的前面,将类声明为持久化类。

     -javax.Persistence.Entity :JPA的Entity,通用性好

     -org.hibernate.annotations.Entity :Hibernate的Entity,有Hibernate特有的功能,如dynamicUpdate, 可以作为JPAEntity的补充

@Table -加在类的前面,为类声明关联的表名。如果表名和类名相同,可以省略。

   @Table(name="t_name")

@Proxy -加在类的前面,修改类级的引索策略,默认是延迟加载 可以不写

   @Proxy(lazy=false) -改为立即加载

 

 @Column -

 如果属性名和对应的列名不同, 或者get/set方法对应的属性名不是列名, 需要加在属性前面,或者加在get/set方法前面。

@ID

 加在主键的属性前面,或者加在get/set方法前面,补充属性:

  @GeneratedValue -主键自增策略

            @GeneratedValue(Strategy=GenerationType.Auto)

             自定义SEQUENCE(ORALCE使用) 

             @GeneratedValue(Strategy=GenerationType.Sequence, generator="seq_name")         

             @SequenceGenerator(name="seq_name", sequenceName="SEQ_ID")//可以对序列生成的值进行调整

@Transcient -加在属性前面,声明该属性不需要被持久化

@ManyToOne-多对一(外键)关联属性

      @ManyToOne(targetEntity=class_name.class) 

      @JoinColumn(name="c_name") 多对一对应的外键列名

 @OneToMany -一对多关联属性

       @OneToMany(targetEntity=class_name.class,mappedBy="property_name",cascade={CascadeType.ALL})     

        如果Set没有加泛型,需要加targetEntity mappedBy是targetEntity中相关联的属性,并由它来维持外键关系

@ManyToMany -多对多      

 

posted @ 2016-03-06 11:57  亲爱的村姑  阅读(513)  评论(1编辑  收藏  举报