hibernate 單向many to one

//學生表 ,主要操作的表.
//每個學生都對應一個學校,可以多個學生對應一個學校 ,
// 我想在查詢學生的時候把對應的學校信息順便帶出來
public class Student {

    @Column(name = "id")
    private String id;

    @Column(name = "name")
    private String name;

    @Column(name = "school_id")
    private String schoolId;

    private School school;

    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)//懶加載
    @JoinColumn(name = "schoolId", insertable = false, updatable = false)//school屬性不參與任何update操作
    //name = "schoolId"對應的是學生對象的schoolId屬性(非school_id字段)
    @NotFound(action = NotFoundAction.IGNORE)//如果schoolId對應的數據不存在,防止拋出異常(髒數據)
    public School getSchool() {
        return school;
    }
    //省略N行get/set

}


//學校表,並沒有配置任何關係,他不需要知道有誰用到了自己
public class School {
    private String id;
    private String title;
    private String address;
    //省去get.set...
}

//查詢就不多說了 ,查詢學生 ,學生中的學校也會出來

//關於修改學生: 由於配置了學生中的school對象不參與更新操作 ,要向更新學生中的school關係 ,只需要 student.setSchoolId("學校ID") ,然後保存student 即可

//PS:有些人是在student中配置過school對象後就不要student中的schoolIId屬性了,但是會存在jsp前臺->mvc後臺接受student對象出現student中的school對象接受不正常(如果有對策請留鏈接給我,我受這個困擾好久了) . 本文章同時使用了字段和對象,對象只用來展示頁面數據 ,字段用來插入更新.

//

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