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对象接受不正常(如果有对策请留链接给我,我受这个困扰好久了) . 本文章同时使用了字段和对象,对象只用来展示页面数据 ,字段用来插入更新.

//

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