//學生表 ,主要操作的表.
//每個學生都對應一個學校,可以多個學生對應一個學校 ,
// 我想在查詢學生的時候把對應的學校信息順便帶出來
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對象接受不正常(如果有對策請留鏈接給我,我受這個困擾好久了) . 本文章同時使用了字段和對象,對象只用來展示頁面數據 ,字段用來插入更新.
//文章整理上傳於2017-08-30