0
点赞
收藏
分享

微信扫一扫

hibernate延迟加载

解决hibernate延迟加载的问题:



在Dao层的方法中添加一个是否获取延迟加载List的参数(如传入一个枚举参数);


在Dao获取数据后,判断延迟加载参数,如果获取延迟加载参数为true,则创建一个新的列表,构造器的参数为获取延迟加载的集合,然后将新的集合set到对象属性中,这样在dao层外就可以访问延迟加载的数据了。


简单的代码如下:



Student.java


private String name;


private List<Course> courseList;



Dao.java


...


public Student queryStudent(Integer studentId, FetchCourseEnum fetchCourse) {


Student student = .......;


if(fetchCourse.YES.equalse(fetchCourse) {


List<Course> courseList = new ArrayList<Course>(student.getCourseList());


student.setCourseList(courseList);


}


return student;


}


...



延迟加载的数据不能再dao层外面获取的原因:在dao层外,session就关闭了,所以在dao层外访问延迟加载的数据会抛异常。


举报

相关推荐

0 条评论