在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用annotation的方式可以更简介,所以这里就简单记录下通过annotation来配置各种映射关系,在hibernate4以后已经将annotation的jar包集成进来了,如果使用hibernate3的版本就需要引入annotation的jar包。

配置持久化类常用的注解:

Hibernate框架之注解的配置

注:GeneratedValue指定了标识符的生成策略。jpa提供了4种标准用法。

01.AUTO:根据不同的数据库选择不同的策略

02.TABLE:使用表保存id值

03.INDENITY:使用数据库自动生成主键

04.SEQUENCE:使用序列创建主键(如Oracle)

 

配置关联关系常用的注解:

Hibernate框架之注解的配置

话不多说了,待大家来看看到底怎么用的才最重要

1.注解配置对象关联关系之   一对一(学生对学生证)

Hibernate框架之注解的配置

 

Student.java

package cn.zhang.entity;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;

//学生实体类
@Entity
@Table(name="Student2161")
public class Student {
    @Id //主键
    @GeneratedValue //主键生成策略
    private Integer sid;
    
    private String name;
    //配置之间的一对一的关系
    //cascade={CascadeType.ALL}设置了级联
    //mappedBy="stu"设置维护关系的控制权交给StuCard类这一方,相当于Student.hbm.xml中配置的inverse="true"
    @OneToOne(mappedBy="stu",cascade={CascadeType.ALL})
    private StuCard sCard;
    public Integer getSid() {
        return sid;
    }
    public void setSid(Integer sid) {
        this.sid = sid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public StuCard getsCard() {
        return sCard;
    }
    public void setsCard(StuCard sCard) {
        this.sCard = sCard;
    }

}
View Code

相关文章: