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