关于 mybatis 和通用 mapper 的一些疑问
小弟接触 mybatis 等东西没多久,最近在看一些通用的 mapper,比如 通用 Mapper和 mybatis-plus,有几个问题想请教各位大佬:
- 在查询列表和查询详情时返回值是有区别的,需要写两个 entity 来对应吗?
- 比如查询文章时,文章作者在库中保存的是用户 Id,是用 join 来联表查还是单表查询获得到用户 id,再去单表查用户更好呢?如果用 join,那又要去手写 sql 了,这些通用 mapper 意义又不大了。
还没有看过 jpa,听说是个更好的选择?
----------------------- 以下是精选回复-----------------------
答:通用 mapper 一般是不支持自动 join 的,一般都是自己写,如果懒得写,用 jpa 吧
答:通用 mapper 解决的是单表的增删改查问题。不过通用 mapper 依然支持普通的 xml 映射语句,不冲突。
第一个问题很简单:查询列表的时候返回值是 List<T>,查询详情返回值是 T
JPA 也解决不了多表 join 的问题,最终还是要回到手写 SQL 语句的路上
答:复杂查询手写吧,避免不了。通用 mapper 是节省重复工作的,复杂查询一般不是重复性的。
答:
答:如果有什么疑问,可以看下这个帖子,评论里的各种问题都一一解答了。
自动化 ORM 库 APIJSON 3.4.9 发布,已 5K Star 入选码云最具价值项目
https://www.v2ex.com/t/544424
答:同问。如果需要两表连表查询,SQL 写在 a 表 mapper 里面还是 b 表 mapper 里面?
0条评论