敏捷是一条很长的路,摸索着前进着
主表:MASTER
字段:ORDER_ID --主键
RELATE_ID --申请单位
STOCK_ADDRESS --仓库地址
TERMINAL_VENDER --供应商
PROVINCE_ID --省分ID
STATE --状态
子表:DETAIL
字段:ORDER_ID --与主表ORDER_ID关联
PROPERTY_CODE --属性编码
SALE_PRICE --价格
TERMINAL_VENDER --供应商 与主表TERMINAL_VENDER关联
PROVINCE_ID --省分ID 与主表PROVINCE_ID关联
主键为 ORDER_ID + PROPERTY_CODE
要求,取得 主表:MASTER 中STATE为1的记录,并映射成易于操作的java对象。
并关联子表,ORDER_ID、TERMINAL_VENDER、PROVINCE_ID作为查询子表的条件。
将查询出的子表数据映射成List<Object> ,作为 主表映射成对象的一个 成员变量。
以便后续操作。
定义java对象 Master,对应主表数据:
定义Detail类,对应子表数据:
这样所有的工作都OK,
执行
List<Master> masters = (List<Master>) sqlMap.queryForList("selectData", param);
// param 为HashMap, put("PROVINCE_ID", "BJ"); 作为查询条件用。
得到 List<Master>,其中每个Master对象,都会持有 List<Detail>。
要点在于
<result property="details" column= "{province=PROVINCE_CODE,id=ORDER_ID,VENDER=TERMINAL_VENDER}" select="select-dtl" />
的配置,
即 将主表中的值传到 子查询当中作为查询条件,
这样取得的数据就是 有关系的了。 本文为原创,欢迎转载,转载请注明出处BlogJava。
Powered by: BlogJava Copyright © 李 明