关联查询的sql写在哪个dao里

sql语句:

select * from user u left join user_menu u_m on u_m.user_id = u.user_id left join menu m on u_m.menu_id = m.menu_id
where u.user_id = 1

有用户表、用户-菜单表、菜单表。 分别有用户UserMapper、菜单MenuMapper。

请问这条sql写在UserMapper还是MenuMapper?

你的目的是什么,查用户还是查菜单信息

新建一个单独的Mapper,尽量保证Mapper单一职责。

主要是看你这个业务是在哪实现的,是user使用的业务方法还是菜单使用的业务方法,mapper映射文件和业务相对应

如果只有一个,这个是以用户为主就放在用户下,如果关联的表有很多个查询方法可以新写一个关联信息的mapper

放在User表 因为是左外链接 查询的是所有的数据 多对一关系 在user.mapper.xml 然后关联上MEUN 表的查询

比如说我这个 一个出版社可能对应多本书

img