请问java高手,mybatis的父子关系是如何映射的?
比如:有个classPerson{privateid;privatename;privatePersonparent;Set<Person>children=newHas...
比如:有个
class Person{
private id;
private name ;
private Person parent;
Set<Person> children =new HashSet<Person>();
}
表结构:person(int id,varchar name ,int parent_id )
请问mapper如何映射啊,要求根据person的id可以将它的基本属性和parent、children查出,并且children里面的pratent不为空,parent里面的children不为空?感激不尽了 展开
class Person{
private id;
private name ;
private Person parent;
Set<Person> children =new HashSet<Person>();
}
表结构:person(int id,varchar name ,int parent_id )
请问mapper如何映射啊,要求根据person的id可以将它的基本属性和parent、children查出,并且children里面的pratent不为空,parent里面的children不为空?感激不尽了 展开
2个回答
展开全部
mybatis有两种关联映射方式,一种是结果集映射,一种是子查询映射。
子查询映射
<!-- 一对一映射,upersign便是getBySingleSign方法的入参 -->
<association property="parentmenu" column="upersign" select="sys.mapper.FuncMapper.getBySingleSign"/>
<!-- 一对多映射 -->
<collection property="menus" ofType="java.util.List" select="sys.mapper.RoleMapper.searchMenu" column="SR_FUNCURL"/>
结果集映射
<!-- 一对一映射,property="roleDTO"是对象中的属性为"roleDTO", javaType="roleDTO"是对象的别名叫"roleDTO"与前面同名的没有任何关系,resultMap="roleDTOMap.roleResultMap"是对象RoleDTO的结果集映射规则
-->
<association property="roleDTO" column="sr_id" javaType="roleDTO" resultMap="roleDTOMap.roleResultMap" />
子查询映射
<!-- 一对一映射,upersign便是getBySingleSign方法的入参 -->
<association property="parentmenu" column="upersign" select="sys.mapper.FuncMapper.getBySingleSign"/>
<!-- 一对多映射 -->
<collection property="menus" ofType="java.util.List" select="sys.mapper.RoleMapper.searchMenu" column="SR_FUNCURL"/>
结果集映射
<!-- 一对一映射,property="roleDTO"是对象中的属性为"roleDTO", javaType="roleDTO"是对象的别名叫"roleDTO"与前面同名的没有任何关系,resultMap="roleDTOMap.roleResultMap"是对象RoleDTO的结果集映射规则
-->
<association property="roleDTO" column="sr_id" javaType="roleDTO" resultMap="roleDTOMap.roleResultMap" />
追问
一对一映射也可以用association 吗?
追答
是的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询