Hibernate--最佳实践 重要

本文探讨了在大型项目中使用Hibernate处理百万级数据时的最佳实践,包括避免使用对象关联,尽量使用冗余字段替代外键,以及如何在查询时避免使用HQL而改用SQL查询以提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用hibernate的最佳实践:


1 在做关系的时候 尽可能使用单向关联 不要使用双向关联
2 在大项目中 如果数据量超过百万行的项目  使用Hibernate可以酌情考虑一下几个原则:
2.1重要:不要使用对象关联  尽可能使用冗余字段来替代外键(带来的问题就是必须修改所有的冗余)
  因为百万条数据 如果使用外键来跨表查询 那么性能会非常的慢 比如model1的设计
  
  但是也有问题:比如在修改班级的名称时候 我们仍然需要把学生里面的班级的名称给修改 
  虽然这样 效率仍然很高
  
  如果有一个需求 就要使用student 又要classroom又要special 那么我们可以创建一个DTO传输类 不需要
  在数据库中建立很多冗余字段,而只要建立DTO类 在表示层时候,我们分别从数据库取不同的对象就可以

2.2查询数据不再使用HQL(查询会进入两级缓存 效率低) 全部使用SQL查询,如果涉及缓存,自己根据情况,自己加入相应的缓存
而不使用Hibernate的缓存。 hibernate的SQL查询是不进入缓存的。 hibernate的SQL查询 非常好用
 
其他增加 修改 删除 还是用HQL 很方便
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值