Hibernate框架开发笔记 lesson5

来源:互联网 发布:淄博网站seo 编辑:程序博客网 时间:2024/06/05 21:18

hibernate注解开发:

 替换 *.hbm.xml

@Entity

将一个类声明为一个实体bean(即一个持久化POJO类)

@Id

声明了该实体bean的标识属性(相当于数据表的主键)

@GeneratedValue

定义标识符的生成策略

@Table

为实体bean映射指定表(table)、目录(catalog)和schema的名字。默认值:实体bean的类名,不带包名

@UniqueConstraint

定义表的唯一约束

@Lob

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

@Column

将属性映射到列

@Transient

将忽略这些字段和属性,不用持久化到数据库

@NamedQuery

配置命名查询


  @OneToOne

建立实体bean之间的一对一关联

@OneToMany

建立实体bean之间的一对多关联

@ManyToOne

建立实体bean之间的多对一关联

@ManyToMany

建立实体bean之间的多对多关联


引入JAR包 

myeclipse自带 Hibernate 3.3 Annotation & Entity Manager

hibernate-annotations.jar 、 hibernate-commons-annotations.jar


实体类注解

@Entity

@Table(name="dept") 默认为类名小写

public class Dept implements java.io.Serializable {

private Integer dno;

private String dname;

private String loc;

//关系属性

private Set<Emp> emps = new HashSet<Emp>(0);



public Dept() {

}


public Dept(String dname, String loc, Set emps) {

this.dname = dname;

this.loc = loc;

this.emps = emps;

}


@Id //主键字段对应的属性

@GeneratedValue(strategy=GenerationType.AUTO)   //主键生成器 

public Integer getDno() {

return this.dno;

}



public void setDno(Integer dno) {

this.dno = dno;

}


@Basic 可以不加

@Column(name="name")  字段同名可不配

public String getDname() {

return this.dname;

}



public void setDname(String dname) {

this.dname = dname;

}

@Basic

public String getLoc() {

return this.loc;

}



public void setLoc(String loc) {

this.loc = loc;

}

@OneToMany(mappedBy="dept"(emp的关系属性,通过属性找外建),cascade=CascadeType.ALL,fetch=FetchType.LAZY)

public Set<Emp> getEmps() {

return emps;

}

(对应的emp:

                     @ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
             @JoinColumn(name="dno")

             @JoinColumn(name="dno")

public Dept getDept() {

return this.dept;

} )


public void setEmps(Set<Emp> emps) {

this.emps = emps;

}


}


hibernate.cfg.xml

<!-- 如果用的是注解开发 需要通过class属性配置加有注解的实体类路径 -->

<mapping  class="entity.Dept"/>

<mapping  class="entity.Emp"/>


HibernateUtils 

加载带有的注解的主配置文件

 private  static AnnotationConfiguration configuration = new AnnotationConfiguration();   


 <!-- 作用:可以通过hbm.xml或者注解生成建表结构 -->

<property name="hbm2ddl.auto">create</property>

0 0