id和result的唯一不同是id表示的结果将是当比较对象实例时用到的标识属性。这帮助来改进整体表现,特别是缓存和嵌入结果映射。所以不同数据的id应该唯一区别,不然导致数据结果集只有一条数据。顾客和订单的例子做说明: 一个顾客可以有多个订单, 一个订单只对应一个顾客
1、代码结构图:
2、建表语句:
3、顾客实体:
4、订单实体:
5、一对多实体配置: Person.xml
6、多对一实体配置:
7、总配置: sqlMapConfig.xml
8、测试文件:
9、测试结果:
(1)一对多,查询person(一)级联查询订单order(多)
(2)多对一,查询订单order(多)级联查询person(一)
注意:两张表中的主键id字段名要唯一,例如不能都写id,不然的话,在一对多查询的时候就会出现:级联出来的订单项只有一条记录。我之前就是将两张表的主键id字段名都写为id,导致测试结果级联出来的多一直只有一条数据,具体如下: