首页 文章 精选 留言 我的

精选列表

搜索[JPA],共1052篇文章
优秀的个人博客,低调大师

《Spring Boot + JPA 实战》第3招 Entity怎么建

早上被同事拉住,说订单服务升级后,数据库里订单状态从 0 变成了 2,历史数据全乱套了。我是老李。这类问题我们在过去踩过不止一次:有人把 Entity 只当成数据库表的 Java 翻译版本,Hibernate 自动建表后看都不看,结果字段类型、空值约束、枚举取值全都跑偏。现在公司准备做订单系统第一版,如果不把 Entity 当成领域对象和关系模型之间的持久化契约,后面每一次发版都可能变成救火。

优秀的个人博客,低调大师

《Spring Boot + JPA 实战》第7招 JPQL还是SQL

最近复盘一个订单中心项目,同事在代码里写了一个方法名,长得像一列火车:findTop100ByCustomerCreatedAtAfterOrderByTotalAmountDesc。周会上大家盯着这个方法名沉默了五秒,最后还是没人敢说这个方法哪里有问题。我是老李,今天不聊高大上的概念,就聊聊复杂查询到底该怎么选型,为什么方法名不是万能钥匙,以及 JPQL、@Query 和 Native SQL 的边界到底在哪里。

优秀的个人博客,低调大师

《Spring Boot + JPA 实战》第14招 库存并发怎么锁

假设一次秒杀活动,商品库存只有10件。活动开始瞬间,100个线程同时涌进来。如果没有并发控制,最终可能卖出12件甚至更多,或者库存变成负数。代码一般是:先查库存,判断大于0,然后减库存,保存。这一串操作在并发下会发生“丢失更新”。两个请求同时读到stock=10,都判断可以买,然后都执行stock=9并更新,结果只少了一件,却卖了两件。更糟糕的是,可能出现死锁:事务A锁住行1等待行2,事务B锁住行2等待行1。大促时数据库连接池耗尽、CPU飙高、用户看到超卖或支付成功却没发货。

优秀的个人博客,低调大师

《Spring Boot + JPA 实战》第8招 关联关系别乱加

前几天,团队里一个做了三年后端的兄弟在群里甩了一张堆栈截图,附了一句:“我明明只加了一个订单项,怎么它给我更新了订单表?”我点开一看,Order 实体上标着 @OneToMany,OrderItem 上又标着 @ManyToOne,两边都配了 JoinColumn。保存订单时,Hibernate 先插了 OrderItem,又回头更新 Order 的外键,最后还抛了个约束冲突。这哥们很委屈:“写起来就两个注解的事,咋还翻车了?”

优秀的个人博客,低调大师

《Spring Boot + JPA 实战》第13招 事务为什么失效

凌晨两点,运维群弹告警:订单服务数据库连接池耗尽,接口平均响应从 80 毫秒飙到 4 秒,大量下单请求超时。排查发现,一位开发在创建订单的事务里加了一次外部库存预占调用,对端系统抖动,事务一直不提交,连接和锁全部卡住。类似的问题还有很多:有人给方法加上 @Transactional,结果同类方法里内部调用,注解根本不生效;有人把整条下单链路包成一个事务,包含 HTTP、消息、通知,最后锁等待和死锁频发;还有人遇到受检异常不回滚,怀疑框架有问题。

优秀的个人博客,低调大师

《Spring Boot + JPA 实战》第19招 表结构怎么演进

凌晨两点,订单表突然卡死,几十个连接在等待元数据锁,业务完全不可用。排查发现,发布时 Hibernate 自动改表,给一张两千万行的表加索引,还顺手调整了另一个字段类型。我是老李,经历过这种场面。开发环境里 ddl-auto=update 确实方便,实体类加个字段,重启就自动加列;改个注解,索引也自动修。但这种便利一旦带到生产,就变成了事故。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册