1
echo1937 2020-10-27 14:14:50 +08:00
我就是这么用的.
|
2
lori01 2020-10-27 14:16:59 +08:00
我的博客网站也是这么用的,jpa 真的省掉了很多 sql 编写,复杂的不能用 jpa 的就用 mybaits,很方便,效率非常高
|
3
wysnylc 2020-10-27 14:32:41 +08:00
Mybatis 用 tkmapper 可以不需要 MybatisGenerator 生成 xml 和 entity 而使用 Example,减少代码污染
|
4
THESDZ 2020-10-27 14:37:03 +08:00
问题不大,注意的地方就是后续维护,表(实体)改动的时候两个地方都要改
|
5
guoyuchuan 2020-10-27 14:39:18 +08:00
目前我们公司就是 hibernate 和 mybatis 两者结合使用:
操作数据使用 hibernate ; 查询使用 mybatis 问题: 目前还没遇到问题,估计是我才接触这个项目吧。。。 |
6
madworks OP @guoyuchuan 为什么查询用 mybatis,操作用 hibernate ?难道不是反过来用的吗
|
8
guoyuchuan 2020-10-27 14:46:39 +08:00
@madworks #6 这个我也不知道高层的想法。。。我只是个搬砖的。。。
|
9
yiyi11 2020-10-27 18:13:50 +08:00 via Android 2
隐患就是没有意识到 mybatisplus 可以替代它们。
|
13
wysnylc 2020-10-27 18:22:32 +08:00
@madworks #10 不需要,tkmapper 对比 MybatisGenerator 对代码的侵入非常低,配置也非常简单
|
14
qwerthhusn 2020-10-27 18:33:40 +08:00 1
其实最大的问题就是事务了,假如一个比较复杂的业务同时用了 JPA 和 MyBatis,Spring 的 @Transactional 能不能包的住。。
然后还有 MyBatis-plus,这玩意挺好用的,增删改查,只要不是复杂的表达式啥的,都不用写 xml,直接代码搞定。但是 MyBatis-plus 这种个人开发出来的东西,自己的小项目用用没问题,公司的项目的话感觉还是别用的好 |
15
EminemW 2020-10-27 22:31:55 +08:00
jpa 不也能写 sql 么
|
16
raullf 2020-10-27 22:43:02 +08:00 via iPhone
前端后端生成器是啥
|
17
zzl22100048 2020-10-27 23:24:51 +08:00 via iPhone
jpa+querydsl 就够了吧,mybatis 太难维护了
|
18
taogen 2020-10-27 23:29:41 +08:00
mybatis plus 不香吗
|
19
jdi 2020-10-28 00:01:29 +08:00 via Android
mybatisplus = mybatis+jpa 。
不过我比较好奇生成器是什么(*´∀`) |
20
Kirsk 2020-10-28 00:43:14 +08:00 via Android
其实蛮多地方功能相似 少部分用 mybatis 多表确实有些优势 不过 mapper 一套下来 确实没有 jpa 方便 复杂查询封装下 spec 还是看自身业务场景吧
|
21
ourslay 2020-10-28 08:45:56 +08:00 via iPhone 1
Spring Data JDBC 了解下 。
|
22
cheng6563 2020-10-28 08:53:23 +08:00 via Android
jpql 稍微复杂点的查询组装就恶心。
直接在 Java 里拼 SQL 也是一坨一坨的。 只能用 mybatisplus 才能解决生活的样子 |
23
yalin 2020-10-28 09:02:49 +08:00
场景需求决定技术
|
24
Blulotus 2020-10-28 09:13:53 +08:00
分开用没问题,但一个方法里面同时用 jpa 和 mybatis 发现有问题,就弃用 jpa 了。。问题为:业务调用的逻辑大概为 jpa,mybatis,jpa,但打印 sql 执行的顺序为 jpa,jpa,mybatis,反正就不是按业务的逻辑来执行的,不知道啥原因,都换成 myabtis 就不会。
|
25
pengyOne 2020-10-28 09:31:27 +08:00
用 mybatis-plus 吧,也提供 jpa 的那些简单操作
|
26
Jrue0011 2020-10-28 10:02:46 +08:00
21 楼+1,一起用的话可以试试 Spring Data JDBC,官方文档里有一节就是集成 mybatis
|
27
xuanbg 2020-10-28 10:06:52 +08:00
一起用没啥问题,反正各管各的也不会打架,能有什么问题?
|
28
Jrue0011 2020-10-28 10:09:02 +08:00
@Jrue0011 不过 Spring Data JDBC 和 JPA 应该是不一样的,只是功能上和 data jpa 有一定的相似
|
29
aragakiyuii 2020-10-28 10:50:31 +08:00 via iPhone
@Blulotus #24 如果 jpa 不主动 flush 的话,会在整个事务结束末尾一起提交...
|
30
aragakiyuii 2020-10-28 10:52:38 +08:00 via iPhone
@Blulotus #24 这个是 hibernate 的特性,它自己是有一套对于 entity 管理的生命周期,而 mybatis 更倾向于“原生”...
|
31
pkupyx 2020-10-28 10:56:17 +08:00
之前 mybatis plus 的 generator 生成的 entity 似乎并不是标准 jpa 规范,现在好些了嘛
|
32
gundam0603 2020-10-28 11:08:55 +08:00
@Blulotus jpa 会重排,里面的顺序是 jpa 管理的,当然管不了 mybatis 的,而且可能不在一个事务,建议是 mybatis 只用来做复杂查询,JPA 更新是什么的,而且不能混用。
|
33
gundam0603 2020-10-28 11:12:33 +08:00
7,8 年前就这么用了,没大问题,注意别同事务里混着用就行,其实两个现在来讲可能也没那么大差别了。
|
34
anakinsky 2020-10-28 11:26:16 +08:00
个人倾向于 jpa + querydsl 能解决绝大部分的复杂查询,实在不行用 jdbcTemplate ;代码生成也可以使用 IDEA+groovy 脚本,两种一起不是提升了项目复杂度,一堆 mapper 又是一堆 repository
|
35
Blulotus 2020-10-28 11:27:14 +08:00
@aragakiyuii 原来是这样,感谢!
|
36
Blulotus 2020-10-28 11:29:26 +08:00
@gundam0603 明白原因了,感谢解答!
|
38
madworks OP @gundam0603 你是说 jpa 对数据库的操作会重排吗
|
39
gundam0603 2020-10-29 13:12:48 +08:00
@madworks 记得会在事务提交的时候改变提交的顺序
|
40
redcoffeecat 2021-05-26 10:16:59 +08:00
@qwerthhusn t 腾讯都在用
|