hibernate注解处理映射关系.pdf
文本预览下载声明
hibernate 注解处理映射关系
在 hibernate 中,通常配置对象关系映射关系有两种,一种是基于xml 的方式,另一种是基于 annotation 的注解方式,
熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用 annotation 的方式
可以更简介,所以这里就简单记录下通过 annotation 来配置各种映射关系,在 hibernate4 以后已经将 annotation 的jar
包集成进来了,如果使用 hibernate3 的版本就需要引入 annotation 的jar 包。
一、单对象操作
@Entity 如果我们当前这个 bean 要设置成实体对象,就需要加上 Entity 这个注解
@Table(name=t_user) 设置数据库的表名
public class User
{
private int id;
private String username;
private String password;
private Date born;
private Date registerDate;
@Column(name=register_date) Column 中的 name 属性对应了数据库的该字段名字,里面还有其他
属性,例如 length ,nullable 等等
public Date getRegisterDate()
{
return registerDate;
}
public void setRegisterDate(Date registerDate)
{
this.registerDate = registerDate;
}
@Id 定义为数据库的主键 ID (建议不要在属性上引入注解,因为属性是 private 的,如果引入注解会破
坏其封装特性,所以建议在 getter 方法上加入注解)
@GeneratedValue ID 的生成策略为自动生成
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
1 / 14
}
最后只需要在 hibernate.cfg.xml 文件里面将该实体类加进去即可:
!-- 基于 annotation 的配置 --
mapping class=com.bjpowernode.bean.User/
!-- 基于 hbm.xml 配置文件 --
mapping resource=com/bjpowernode/bean/User.hbm.xml/
这样我们就可以写测试类来进行我们的 CRUD 操作了。
二、一对多的映射(one-to-many)
这里我们定义了两个实体类,一个是 ClassRoom ,一个是Student ,这两者是一对多的关联关系。
ClassRoom 类:
@Entity
@Table(name=t_classroom)
public class ClassRoom
{
private int id;
private String className;
private SetStudent students;
public ClassRoom()
{
students = new HashSetStudent();
}
public void addStudent(Student student)
{
students.add(student);
}
@Id
@G
显示全部