SSM框架中多表关联如何操作

我先说说我自己是如何操作mybatis的多表关联的查询的

我并没有用sql语句嵌套查询,多表查询全都是用在代码挨个单表查询实现的

比如我一般在Controller层这么写

DomainA a = serviceA.find(1);
DomainB b = serviceB.find(a.getBid());
modelMap.put("a",a);
modelMap.put("b",b);

这样写是否是正确的写法?

我原先的这段话可能存在歧义:

我是否应该在sql中写多表关联? 如果这么做 返回的数据无法用Model层的对象包装返回

修改成:
我是否应该在sql中写多表关联? 结果集是个多表不同字段的结果集 单个表的Model已经无法满足.

一些回答说可以一个新Model包含两张表的字段,那我如果跨4,5张表这种呢,为了一次查询新建一个存在非常多字段的类(成员变量可能超过200)吗?

还有一个问题,ModelMap写在Service层好吗

四季花海
浏览 1237回答 4
4回答

萧十郎

你可能忘记了mybatis的xml文件可以写ResultMap这个东西 多表查询之后 结果映射到ResultMap里

德玛西亚99

如果两张表在一个库,既然用了mybatis了,在数据量允许情况下,就用join吧

慕姐8265434

使用子查询或者join,然后新建一个新的dto对象将DomainA 和DomainB 中需要的属性包起来就行了,随着业务的增加而增加新的属性。

摇曳的蔷薇

在sql里多表查询,Model类只要有对应的字段,就会返回数据。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java