延迟加载:
修改配置信息:
<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来查询。