感觉 spring jpa 使用越来越广泛了

2020-12-14 20:34:58 +08:00
 myqa

未来可能会取代 mybatis 成为 java orm 第一选择 当然不适用 springboot 的话就不好说了

10035 次点击
所在节点    Java
65 条回复
hantsy
2020-12-15 12:30:44 +08:00
@myqa Spring Data JPA 与 Hibernate 没太大关系。只是默认情况下,Spring Boot 在 DataJPA stater 中添加 Hibernate (作为 JPA 规范的 provider )省事。

在国内,我帮朋友公司面过工作 5 年以上的 Java 开发人员,不清楚 JPA 与 Hibernate 关系的大把。

用过 ElipseLinks, OpenJPA 更少,当然一半是听都没听说过。
wangyanrui
2020-12-15 12:49:10 +08:00
国内还是面向数据库编程的比较多

另说一个很现实的情况:

中小型公司,其实更会在乎 SQL 到底怎么写,要不要 SELECT 某几个字段,或者怎么 JOIN 等等

大体量的公司,单说 DB 层面,起码见过的几家国内大厂,都是 SELECT * ,然后自己在代码里实现简单的 JOIN
复杂 JOIN 不是 CURD boy 负责的事情,有专门的数据部门抽取到 Hive 之类的去单独处理

加机器远比优化代码要来的迅速,不行就上 TiDB 之类的东西,而且 SELECT 某几个字段和 SELECT * 并没有想象中那么大的性能差距(当然不回表的除外)
Braisdom
2020-12-15 13:08:01 +08:00
@hantsy 是的,我接触很多国外的公司基本都是 JPA,很少有 mybatis 的。
myqa
2020-12-15 14:14:50 +08:00
@hantsy 说没关系也不太确切吧毕竟是底层支持之一
cmai
2020-12-15 17:17:12 +08:00
@lewis89 你是如何得出覆盖索引实际上快不了多少的结论? 覆盖索引不用再次回表,少查一次聚簇索引当然要快很多啊
cmai
2020-12-15 17:18:10 +08:00
@lewis89 当然,是在数据有一定体量的情况下
jjianwen68
2020-12-15 17:28:16 +08:00
那么,你们开始使用 spring r2dbc 了吗
jeizas
2020-12-15 17:41:47 +08:00
@jjianwen68 mysql 还是没官方支持
hantsy
2020-12-15 17:44:52 +08:00
@jjianwen68 还不能完全代替 Jdbc 。
hantsy
2020-12-15 17:49:34 +08:00
@jjianwen68 R2dbc 从开始浮化就自己玩了,最近 Spring Boot 2.4/Spring Data R2dbc 1.2 这个版本,API 变化太大了,API 结构上完全重构了,一部分功能移到 Spring 核心了。

https://github.com/hantsy/spring-r2dbc-sample
hantsy
2020-12-15 17:53:32 +08:00
@jeizas 和 Jdbc 一样,R2dbc 也是一套标准规范了(现在在 reactive 基金会下监管,https://www.reactive.foundation/projects),同样需要驱动实现。实现 MySQL 的 R2dbc 驱动已经不止一套了。
hantsy
2020-12-15 17:55:33 +08:00
https://r2dbc.io/drivers/ 官网可以看到两套 MySQL 驱动了。
tesguest123
2020-12-15 18:00:57 +08:00
后台管理系统不要太香,又增加摸鱼时间。
lewis89
2020-12-15 18:08:53 +08:00
@cmai #46 有体量了 肯定就不用 JPA 了..
skypyb
2020-12-15 18:11:35 +08:00
我也喜欢 JPA, 但还是不得不选择 MyBatis, 因为 JPA 写那种带数据库特有函数的 SQL 挺麻烦的。。
比如我用的 Postgres, 我要用那种 ts_rank 、to_tsquery 这种函数, 还带着大段的 WHERE 条件的话, 还是在 XML 里写漂亮清晰。

要是 JPA 能支持文件写 SQL, 鬼才用 MyBatis
myqa
2020-12-15 18:52:41 +08:00
@jjianwen68 这个看起来可挺香的,之前写脚本语言的时候发现很多 orm 都是这么做的,貌似 java 也有类似的框架
fxjson
2020-12-15 19:09:49 +08:00
单表查询 jpa,多表查询 querydsl, 谁用谁知道
mmdsun
2020-12-15 23:42:58 +08:00
@skypyb jpa 是可以写原声 SQL 的。而且可以写到外部文件 xml 里面
skypyb
2020-12-16 08:24:53 +08:00
@mmdsun 求教怎么操作, 我之前查了好久没查到。
myqa
2020-12-16 10:02:42 +08:00
@skypyb 写在 xml 也没什么好,非常讨厌 xml
写在注解上主要是太长了不好操作,不过感觉配合 ide 的感觉还行吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/735432

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX