hibernate--annotation的使用

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;
    }
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章