您的位置:首页 > 其它

hibernate--annotation的使用

2016-01-08 16:41 363 查看
1 首先要把mapping标签的resource=换成class=

2注意很多类 都是从javax.persistence中来的 要注意

student.java

@Entity
@Table(name="t_stu")
//@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)//开启二级缓存 缓存对象
//对该对象加锁是为了修改安全 这种经常修改的肯定不能放到二级缓存中
public class Student
{
    private int id;
    private String name;
    private String sex;
    private Classroom classroom;
    private int version;
    
    @Version//加乐观锁
    public int getVersion()
    {
        return version;
    }
    public void setVersion(int version)
    {
        this.version = version;
    }
    public Student()
    {
    }
    @Id
    @GeneratedValue
    public int getId()
    {
        return id;
    }
    public void setId(int id)
    {
        this.id = id;
    }
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getSex()
    {
        return sex;
    }
    public void setSex(String sex)
    {
        this.sex = sex;
    }
    //fetch=FetchType.LAZY就是XML中的select fetch=FetchType.EAGER就是XML中的join
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="cid")
    public Classroom getClassroom()
    {
        return classroom;
    }
    public void setClassroom(Classroom classroom)
    {
        this.classroom = classroom;
    }
    
}


Classroom.java

@Entity
@Table(name="t_cla")
@BatchSize(size=2)
public class Classroom
{
    private int id;
    private String name;
    private int grade;
    private Set<Student> students;
    private Special special;
    
    
    
    public Classroom()
    {
    }
    @ManyToOne
    @JoinColumn(name="spec_id")
    public Special getSpecial()
    {
        return special;
    }
    public void setSpecial(Special special)
    {
        this.special = special;
    }
    @Id
    @GeneratedValue
    public int getId()
    {
        return id;
    }
    public void setId(int id)
    {
        this.id = id;
    }
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public int getGrade()
    {
        return grade;
    }
    public void setGrade(int grade)
    {
        this.grade = grade;
    }
    @OneToMany(mappedBy="classroom")
    @LazyCollection(LazyCollectionOption.EXTRA)
    @Fetch(FetchMode.SUBSELECT)//此处等于xml中在一端set中配置fetch="sub-select"
    public Set<Student> getStudents()
    {
        return students;
    }
    public void setStudents(Set<Student> students)
    {
        this.students = students;
    }
    
}
Specail.java

@Entity
@Table(name="t_spec")
public class Special
{
    private int id;
    private String name;
    private String type;
    private Set<Classroom> clas;
    
    public Special()
    {
    }
   @Id
   @GeneratedValue
    public int getId()
    {
        return id;
    }
    public void setId(int id)
    {
        this.id = id;
    }
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getType()
    {
        return type;
    }
    public void setType(String type)
    {
        this.type = type;
    }
    @OneToMany(mappedBy="special")
    @LazyCollection(LazyCollectionOption.EXTRA)
    public Set<Classroom> getClas()
    {
        return clas;
    }
    public void setClas(Set<Classroom> clas)
    {
        this.clas = clas;
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: