JPA有哪些懒加载方法,如何处理懒加载?

449 ℃

JPA有哪些懒加载方法,如何处理懒加载?下面web建站小编给大家简单介绍一下如何通过以下方式处理懒加载效果!

1、在关系图上使用@Lazy注释来配置延迟加载,缺省值是立即加载。

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "department_id") 
@Lazy
private Department department; 

2、查询时使用setFetchGraph指定需要加载的对象或集合,实现按需加载。

String jpql = "SELECT e FROM Employee e";    
Query query = em.createQuery(jpql);
FetchJoin<Employee, Department> fetch = query.fetch("department"); 
List<Employee> employees = query.getResultList(); 

3、调用EntityManager.refresh()方法手动刷新实体,触发懒加载关系的加载。

Employee emp = em.find(Employee.class, 1);  
// 第一次读取不会加载department    
Department dept = emp.getDepartment();

em.refresh(emp);  
// 刷新实体,会加载department
Department dept = emp.getDepartment();  

4、二级缓存要求将cascade属性设置为CascadeType.ALL,否则就不能支持懒加载关系数据的缓存。

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "department_id")  
private Department department;

JPA中InheritanceType的类型有哪些?

标签: JPA, 懒加载方法

上面是“JPA有哪些懒加载方法,如何处理懒加载?”的全面内容,想了解更多关于 后端开发 内容,请继续关注web建站教程。

当前网址:https://m.ipkd.cn/webs_12167.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

织梦dedecms模板标签语法教程
vue项目开发如何引入jquery
帝国cms内容页调用下线时间代码
WordPress常见报错问题二
php如何将数组转换为字符串