JavaEE-SSM:016 Mybatis映射器(7)

延迟加载:

修改配置信息:

<settings>
    <setting name="lazyLoadingEnabled" value="true"/>
    <setting name="aggressiveLazyLoading" value="false"/>
</settings>

在需要加载的级联节点上添加fetchType="eager | lazy":

这样,employeeTaskList被一并查询了,但是其他关联字段没有被查询。

多对多映射

一个用户有多重角色,一个角色被多个用户共享。构成多对多的关系,这种情况较为复杂,难以处理。我们一般添加额外的开销,通过两个一对多构成。

角色表只存储角色信息,有一个主键--角色编号

用户表只存储用户信息,有一个主键--用户编号

用户角色表用于角色表和用户表之间的映射,主键是用户角色表的id,外键分别是用户表和角色表的主键。

POJO类设计:

角色表包含一个list用于存储用户信息

用户类也包含一个list,用来存储角色信息:

角色类的Mapper:

getRole用于根据角色的id查询角色信息,角色信息中包含用户列表,采用一对多映射,使用findUserByRoleId来查询。

用户类Mapper:

getUser用于根据用户的id查询用户信息,用户信息中包含角色列表,采用一对多映射,使用findRoleByUserId来查询。

猜你喜欢

转载自blog.csdn.net/Day_and_Night_2017/article/details/84289313