jpa 动态查询条件 数组_JPA最佳实践

本文介绍了JPA的最佳实践,包括使用Repository API进行简单操作,利用querydsl处理复杂查询,以及保存、删除操作的注意事项。强调了querydsl在动态查询和更新操作中的优势,以及在并发和吞吐量大的情况下如何优化JPA的性能。
摘要由CSDN通过智能技术生成

前言

JPA要用好,要遵循最佳实践,否则不如不用。

比起半自动化的MyBatis,全自动化的JPA开发效率更高,但由于底层封装较多,较为复杂,JPA在解放开发人员生产力的同时,也存在一些坑,有些坑在线上环境可能会给您造成血的教训。。。

好在JPA也提供了一些方式,可以绕开这些坑,因此总结JPA的最佳实践十分有必要。


  整体使用原则  

7457c5e9b9a0f7f2ef1170bdc89d1b91.png

简单的增删改查操作:优先考虑用JPA自带的Repository API

说明:

如果是根据主键id查询,则直接使用JPA内置的findById方法,如:

User user = userDAO.findById(id).get();

如果是要根据主键id之外属性的固定查询,则一般在对应的Repository类里定义findByXxx方法即可,如:

List findByAddress(String address);

灵活复杂的where、嵌套子查询、批量更新操作:推荐使用querydsl实现

说明:

在querydsl出现之前,相比MyBatis,JPA在如下2方面存在明显的不足:

  • 灵活的where

  • 嵌套子查询

而querydsl的出现给JPA加上了一对翅膀,很好的弥补了JPA在如上2方面的劣势,让JPA的能力又上了一个新台阶。

出于方便集中审核sql的需要:建议所有自定义的db操作集中放在同一个包下

说明:

很多人在使用J

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值