描述问题:当两张表为多对多关系时,一个表的实体类中拥有一个属性用来存储另一张表的对应数据,比如学生和课程,学生类中有个课程列表来记录这个学生所学的所有课程
下面模板model和组件component来解释,原理解析在最后面,图有点多可以对照解析慢慢看
数据库结构:
模板表:
组件表:
模板_组件表
代码:
实体类:
模板:
组件:
Dao层方法:
service类
controller类
结果:
原理解析:
在发送请求后,会到controller的getModel方法中并且将URL中的id作为条件去进行查询,最终会调用到ModelDao的getModelById1方法中,然后通过@Results注解中的第二个@result会将查询到的model的id传给ComponentDao中的getComponentByModelId方法,getComponentByModelId方法通过join查询出当前model的所有componnet列表并将结果返回到ModelDao的getModelById1方法通过第二个@result将查询到的组件列表赋值给model的componentList属性