//学生表 ,主要操作的表.
//每个学生都对应一个学校,可以多个学生对应一个学校 ,
// 我想在查询学生的时候把对应的学校信息顺便带出来
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