当前位置: 首页 > news >正文

网站建设长尾关键词网站流量报表

网站建设长尾关键词,网站流量报表,华大 建设网站,wordpress 乐视云文章目录 示例代码放到最后#xff0c;使用的是Springboot 项目1. 简介2. Hibernate抓取策略分类2.1 即时加载#xff08;Eager Loading#xff09;2.2 延迟加载#xff08;Lazy Loading#xff09;2.3 子查询加载#xff08;Subselect Loading#xff09;2.4 基于批处理… 文章目录 示例代码放到最后使用的是Springboot 项目1. 简介2. Hibernate抓取策略分类2.1 即时加载Eager Loading2.2 延迟加载Lazy Loading2.3 子查询加载Subselect Loading2.4 基于批处理的加载Batch Loading 3. 即时加载Eager Loading3.1 概述3.2 实体类映射配置3.3 使用场景和注意事项 4. 延迟加载Lazy Loading4.1 概述4.2 实体类映射配置4.3 使用场景和注意事项 5. 子查询加载Subselect Loading5.1 概述5.2 实体类映射配置5.3 使用场景和注意事项 6. 基于批处理的加载Batch Loading6.1 概述6.2 实体类映射配置6.3 使用场景和注意事项 7. 总结Demo 示例代码放到最后使用的是Springboot 项目 1. 简介 本文将深入讨论Hibernate中的抓取策略介绍不同类型的抓取策略以及它们的使用场景和注意事项。 2. Hibernate抓取策略分类 2.1 即时加载Eager Loading 即时加载是指在查询主实体时立即加载相关联的实体对象。这种策略会在查询时一次性加载所有关联的实体对象可以减少数据库查询次数。 2.2 延迟加载Lazy Loading 延迟加载是指在访问关联属性时才会真正加载相关的实体对象。这种策略在查询主实体时只会加载主实体对象而关联的实体对象只有在被访问时才会被加载。 2.3 子查询加载Subselect Loading 子查询加载是指通过执行子查询来加载关联的实体集合对象而不是通过单独的SQL语句执行关联查询。这种策略适用于一对多或多对多关系并可以提高性能。 2.4 基于批处理的加载Batch Loading 基于批处理的加载是指通过执行批量SQL语句一次性加载多个实体对象。这种策略可以减少数据库交互次数提高性能。 3. 即时加载Eager Loading 3.1 概述 即时加载策略可以通过设置ManyToOne、OneToOne等注解来实现默认情况下Hibernate会使用即时加载进行关联对象的加载。 3.2 实体类映射配置 在关联属性上使用fetch FetchType.EAGER注解来指定即时加载策略。 Entity Data public class Classes {Idprivate int id;private String name;OneToMany(mappedBy classes, fetch FetchType.EAGER)private ListStudent students; }这里可以看到查询的班级实体种student属性集合有二十个对象 3.3 使用场景和注意事项 适用于关联实体对象数据量较小且经常被使用的情况。频繁加载大量关联对象可能导致性能问题需要谨慎使用。 4. 延迟加载Lazy Loading 4.1 概述 延迟加载策略可以通过设置ManyToOne、OneToOne等注解来实现默认情况下Hibernate会使用延迟加载进行关联对象的加载。 4.2 实体类映射配置 在关联属性上使用fetch FetchType.LAZY注解来指定延迟加载策略。 Entity public class Classes{// ...OneToMany(mappedBy classes, fetch FetchType.LAZY)private ListStudent students;// ... }这里开启懒加载后查询到的对象种数据是空的只有当执行get方法时才会去获取数据 4.3 使用场景和注意事项 适用于关联实体对象数据量较大或者不经常被使用的情况可以减少不必要的数据库查询。注意检查在延迟加载策略下可能引发的懒加载异常需要合理处理。 5. 子查询加载Subselect Loading 5.1 概述 子查询加载策略通过执行子查询来加载关联的实体集合对象适用于一对多或多对多关系。 5.2 实体类映射配置 在关联集合属性上使用Fetch注解并指定Fetch(FetchMode.SUBSELECT)来启用子查询加载策略。 Entity public class Order {// ...OneToMany(mappedBy order)Fetch(FetchMode.SUBSELECT)private ListOrderItem orderItems;// ... }5.3 使用场景和注意事项 适用于一对多或多对多的关联关系减少关联集合对象的查询次数提高性能。子查询加载策略会执行多条SQL语句需要考虑数据库性能和查询效率的平衡。 6. 基于批处理的加载Batch Loading 6.1 概述 基于批处理的加载策略通过执行批量SQL语句一次性加载多个实体对象减少数据库交互次数提高性能。 6.2 实体类映射配置 在关联集合属性上使用BatchSize注解并指定要批量加载的大小。 Entity public class Order {// ...OneToMany(mappedBy order)BatchSize(size 10)private ListOrderItem orderItems;// ... }BatchSize 注解的作用是为了优化 Hibernate 对关联集合属性的查询性能。它可以应用于实体类的集合属性上告诉 Hibernate 在加载该集合属性时一次性加载指定个数的数据从而减少数据库查询次数。 具体来说BatchSize 注解会影响到使用延迟加载FetchType.LAZY的关联集合属性的时候。当访问该集合属性时如果该属性还没有被初始化Hibernate 会触发查询加载数据。通过设置 BatchSize 注解可以控制同时加载的数据量从而减少数据库查询的次数。 例如假设我们有一个 EntityA 实体类其中包含一个 ListEntityB 类型的集合属性我们可以在该属性上添加 BatchSize 注解来优化查询性能 Entity public class EntityA {// ...OneToMany(mappedBy entityA, fetch FetchType.LAZY)BatchSize(size 10) // 在这里添加注解private ListEntityB entityBList;// getters and setters }在这个例子中将 BatchSize(size 10) 注解应用于 entityBList 属性上。当访问 entityBList 属性时Hibernate 会一次性加载 10 条 EntityB 数据从而减少查询次数提高性能。 需要注意的是BatchSize 注解只对延迟加载的集合属性有效对于即时加载FetchType.EAGER的集合属性无效。此外它只影响到关联集合属性本身的加载不会影响到关联实体对象的加载。 总结来说BatchSize 注解可以优化延迟加载的关联集合属性的查询性能通过一次加载多个数据项减少数据库查询次数。但需要根据具体情况选择合适的批处理大小并综合考虑内存消耗和查询性能。 6.3 使用场景和注意事项 适用于一对多或多对多的关联关系减少数据库交互次数提高性能。需要根据实际情况调整批量加载的大小避免一次性加载过多数据导致内存占用过大。 7. 总结 Hibernate提供了多种抓取策略用于加载关联实体对象包括即时加载、延迟加载、手动加载、子查询加载和基于批处理的加载。选择合适的抓取策略可以提高查询性能和减少数据库交互次数但需要根据实际情况和性能要求进行综合考虑。 Demo import lombok.Data; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.OneToMany; import java.util.List; Entity Data public class Classes {Idprivate int id;private String name; // OneToMany(mappedBy classes) // private ListStudent students;//子查询加载 // OneToMany(mappedBy classes) // Fetch(FetchMode.SUBSELECT) // private ListStudent students;//基于批处理的加载OneToMany(mappedBy classes)BatchSize(size 6)private ListStudent students;public void loadCustomer() {// 手动加载关联的Customer对象Hibernate.initialize(students);}}import lombok.Data; import javax.persistence.*;Entity Data public class Student {IdGeneratedValue(strategy GenerationType.IDENTITY)private int id;private String name;ManyToOne(fetch FetchType.EAGER)private Classes classes;}public interface JPAClassesDao extends JpaRepositoryClasses, Integer, Serializable { } public interface JPAStudentDao extends JpaRepositoryStudent, Integer , Serializable { } AutowiredJPAStudentDao jpastudentDao;AutowiredJPAClassesDao jpaclassesDao; // Resource // private SessionFactory factory;RequestMapping(/Insert)public void InsertClassesTest(){ListClasses anew ArrayList();ListStudent snew ArrayList();for (int i 0; i 10; i) {Classes bnew Classes();b.setId(i);b.setName(班级i);a.add(b);for (int j 0; j 20; j) {Student cnew Student();c.setClasses(b);c.setName(学生ij);s.add(c);}}jpaclassesDao.saveAll(a);jpastudentDao.saveAll(s);}RequestMapping(/QueryEAGER)public void queryEAGERTest(){Classes byId jpaclassesDao.findById(0).get();for (Student student : byId.getStudents()) {System.out.println(班级byId.getName()的student.getName());}}RequestMapping(/QueryLAZY)public void queryLAZYTest(){Classes byId jpaclassesDao.getOne(1);System.out.println(--------------------------------------);for (Student student : byId.getStudents()) {System.out.println(班级byId.getName()的student.getName());}}RequestMapping(/QueryTriggerLAZY)public void queryTriggerTest(){Classes byId jpaclassesDao.getOne(1);// byId.loadCustomer();for (Student student : byId.getStudents()) {System.out.println(班级byId.getName()的student.getName());}}RequestMapping(/QuerySubselect)public void querySubselectTest(){Classes byId jpaclassesDao.getOne(1);for (Student student : byId.getStudents()) {System.out.println(班级byId.getName()的student.getName());}}!-- hibernate依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency
http://www.zqtcl.cn/news/846625/

相关文章:

  • 二手书哪个网站做的好wordpress 直排主题
  • 网站开发风险分析做情诗网站
  • 怎样可以快速增加网站的反链网络广告平台有哪些
  • 学校网站源码小游戏网站审核怎么做
  • 西乡网站建设政务网站开发协议
  • 美食网站开发环境北京app网站建设
  • 郑州网站建设推广渠道重庆网站建设公司下载
  • 宜宾营销型网站建设网站建设需要什么资质
  • 重庆建网站有哪些学跨境电商要多少钱
  • 上海建设钢结构工程网站深圳电器公司排名
  • 淄博网站建设找淄深网江苏省建设斤网站
  • 免费行情软件app网站红色西安做网站印象网络
  • 宁波网站建设小程序开发聊城wap网站建设
  • 陇南网站网站建设泰安网站的建设
  • 哪个网站有介绍拿到家做的手工活建设银行网站怎么修改手机号码吗
  • 网站地图怎么用淘宝客推广网站建设
  • 外贸零售网站建设购物网站支付功能怎么做
  • 淘宝客如何做自己的网站西宁工程建设招聘信息网站
  • 天津都有哪些制作网站郑州官网首页
  • 个人网站开发模式海南省建设公司官网
  • edu网站开发做爰视频在线观看免费网站
  • 安防公司网站模板网站建设模板下载
  • 贵阳网站建设方案维护一 建设茶叶网站前的市场分析
  • 山东东营建设网官方网站百度电脑版
  • 做网站前途如何海尔网站建设推广
  • 投资公司网站建设万网域名安装wordpress
  • 高端网站建设企业官网建设wordpress相似推荐
  • php网站开发师招聘wordpress怎么换头像
  • 门禁考勤网站建设广西建设
  • 互助盘网站怎么做的织梦免费企业网站