本人使用mybatis遇到一个问题:
返回结果java类定义如下:
public class PersonVO {
private String name;
private List persons;
}
public class Person {
private String name;
private int age;
privaet String sex;
}
xml结果集定义如下(已简化,结果类型可能写法不准确看大致意思就行):
<resultMap id="" type="PersonVO">
<result property="name" column="name"/>
<association property="persons" resultMap="Person"/>
</resultMap>
<resultMap id="" type="Person">
<result property="name" column="name"/>
<result property="age" column="age"/>
<result property="sex" column="sex"/>
</resultMap>
xml SQL如下:
select name,age,sex from t_person
得出为PersonVO类集合,PersonVO中name对应相同name的Person类集合,实际就像对单表按名称进行了分组
我想问问为什么有这个效果,这里对象的一对多为何能用association关联结果集表示,并且关联的结果集能通过单表查询实现最终查询对象按name分组的效果
你在写SQL 的时候要连接表, 那么连接表的另一个表就是对应你现在的association的关联映射,
我是这么理解的,从hibernate中简化而来的。 你可以去看看hibernate ,
因为要实现半自动映射,那么映射关联了,那么SQL 上也必须要对应才能实现。 association就这个框架就是这样设定的吧