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

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

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

9561 次点击
所在节点    Java
65 条回复
taogen
2020-12-14 20:44:50 +08:00
我选 mybatis plus
fxjson
2020-12-14 20:50:06 +08:00
一直看好 jpa, 但是,但是,国内好像用 mybatis 的多
xuanbg
2020-12-14 20:54:49 +08:00
复杂模型比较多,还是用 @Select/@Insert/@Update/@Delete 手写 SQL 舒服,
manami
2020-12-14 21:50:08 +08:00
用过都说好
sue0917
2020-12-14 22:18:42 +08:00
国内 mybatis,vue 国外 jpa reactjs
chendy
2020-12-14 22:21:49 +08:00
遇到不靠谱的产品乱改,模型稳定不下来,jpa 就远没有 mybatis 好用了
另外,mybatis 不是 orm 。。。
liyhu
2020-12-14 22:26:02 +08:00
mybatis 永不为奴
beginor
2020-12-14 22:29:33 +08:00
jpa 可以做到完全的强类型, 这一点 mybatis 做不到
cheng6563
2020-12-15 01:02:25 +08:00
@beginor mybatis 本来就不强类型,他的定位是 SQL 的模板引擎
echo1937
2020-12-15 08:26:13 +08:00
@taogen #1 如果你用 MP,又甚少用原生 MyBatis 手写 SQL 的话,其实就是另外一个 JPA 。
optional
2020-12-15 08:41:34 +08:00
java 的语言特性,支持不了多好的强类型 orm,最后还是得靠 sql 修修补补。
吐个槽 jpa 连个 upsert 都不敢支持
totoro52
2020-12-15 08:45:30 +08:00
@chendy + 1 我们的产品就是 当初如果采用 jpa 估计现在的代码跟屎一样了
Sharuru
2020-12-15 08:46:45 +08:00
归根结底还是要看项目设计。
有点像前几天社区里讨论的国内流行 CentsOS,国外流行 Ubuntu 那样的感觉。

系统符合 DDD 的,JPA 一把梭就出来了,甚至只靠方法声明就能查数据,但这种对 Modeling 的要求很高。

MyBatis 国内吃香主要还是因为业务复杂程度所致,各种神秘连表。

一般来说,正常项目都会同时引入 JPA 和 MyBatis,简单查询以及插入用 JPA,复杂,要调优的用 MyBatis 。

此外,其实 JPA 也是可以发行 Native SQL 进行查询的,只不过写起来没 MyBatis 那么直观就是了(映射,条件判断之类)。
nutting
2020-12-15 08:59:54 +08:00
对,关键是这个 DDD,国内或者说业界不流行这个,都是围绕数据库设计
totoro52
2020-12-15 09:07:10 +08:00
@Sharuru 其实 mybatisplus 更香一点
EminemW
2020-12-15 09:08:33 +08:00
查询实体某些字段的时候,要用 Map 接收,或者弄一个接口只写 get 方法,这种方式觉得很怪
sagaxu
2020-12-15 09:29:14 +08:00
jdbctemplate 永不为奴
graffitist
2020-12-15 09:36:59 +08:00
我们用的是 jpa 做增删改,通过解析 xml 用 jpa 的 Native SQL 来连表查
myqa
2020-12-15 09:37:50 +08:00
@sagaxu 我们一直用 jdbctemplate,感觉手写 sql 很多问题都不存在了,但是做业务系统有点累还是得 orm
myqa
2020-12-15 09:40:32 +08:00
@echo1937 但是感觉为什么不直接用 jpa 呢,还可以不爽就更换 orm

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

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

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

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

© 2021 V2EX