Hibernate 注解开发

来源:互联网 发布:小丽和小云在计算 编辑:程序博客网 时间:2024/06/05 08:27
一对一注解
@Entity@Table(name = "Card")public class Card {     @Id     @GeneratedValue    private Integer cid;     @Column     private String cname;     @OneToOne(mappedBy = "card",cascade = CascadeType.ALL)     private People people;

    People类

    @Entity    @Table(name = "People")public class People {    @Id    @GeneratedValue    private Integer pid;    @Column    private String pname;    @OneToOne    @JoinColumn(name = "cid")    private Card card;
  hibernate.cfg.xml      
 <mapping class="cn.happy.zhujie.onetoone.Card"/> <mapping class="cn.happy.zhujie.onetoone.People"/>
  测试类
Configuration cfg;SessionFactory factory;Session session;Transaction tx;@Beforepublic void mybefor(){    cfg=new Configuration().configure();    factory=cfg.buildSessionFactory();    session=factory.openSession();    tx=session.beginTransaction();}@Afterpublic void myafter(){    tx.commit();}   //一对一注解@Testpublic void test01() {    People people=new People();    Card card=new Card();    people.setPname("111");    card.setCname("123133");    card.setPeople(people);    people.setCard(card);    session.save(card);}
--------------------一对多注解-----------------------------
   Dept类
@Entity@Table(name = "Dept01")public class Dept {@Id@GeneratedValueprivate  Integer did;@Columnprivate String deptname;@OneToMany(mappedBy = "dept",cascade = CascadeType.ALL,fetch = FetchType.LAZY)private  Set<emp> em=new HashSet<emp>();
  emp类 
@Entity@Table(name = "Emp01")public class emp {    @Id    @GeneratedValue    private  Integer eid;    @Column    private String name;    @ManyToOne    @JoinColumn(name = "did")    private  Dept  dept;
   hibernate.cfg.xml
   <mapping class="cn.happy.zhujie.onetoone.Dept"/>   <mapping class="cn.happy.zhujie.onetoone.emp"/>
   测试类
//添加部门      一对多注解@Testpublic void  loadText(){    Dept  dept=new Dept();    dept.setDeptname("财务部");    emp emps=new emp();    emps.setName("啦啦");    dept.getEm().add(emps);    emps.setDept(dept);    session.save(dept);   // tx.commit();    System.out.println("save ok!!");}使用Hibernate注解的步骤如下:

      (1)使用注解配置持久化类及对象关联关系

      (2)在Hibernate配置文件(hibernate,cfg,xml)中声明持久化类,语法如下:

               <mapping  class="持久化类完整限定名" />

    配置持久化类的常用注解

      @Entity   将一个类声明为一个持久化类

      @Table   为持久化类映射指定表(table),目录(catalog)和schema的名称。默认值:持久化类名,不带包名

      @Id   声明了持久化类的标识属性(相当于数据表的主键)

      @GeneratedValue   定义标识属性值的生成策略

      @UniqueConstraint    定义表的唯一约束

      @Lob   表示属性将被持久化为Blob或者Clob类型

      @Column   将属性映射到数据库字段

      @Transient   指定可以忽略的属性,不用持久化到数据库

    使用注解配置关联关系

     @OneToOne   建立持久化类之间的一对一关联关系

     @OneToMany   建立持久化类之间的一对多关联关系

     @ManyToOne   持久化类之间的多对一关联关系

     @ManyToMany   建立持久化类之间的多对多关联关系