主表:MASTER
字段:ORDER_ID --主鍵
RELATE_ID --申請單位
STOCK_ADDRESS --倉庫地址
TERMINAL_VENDER --供應(yīng)商
PROVINCE_ID --省分ID
STATE --狀態(tài)
子表:DETAIL
字段:ORDER_ID --與主表ORDER_ID關(guān)聯(lián)
PROPERTY_CODE --屬性編碼
SALE_PRICE --價格
TERMINAL_VENDER --供應(yīng)商 與主表TERMINAL_VENDER關(guān)聯(lián)
PROVINCE_ID --省分ID 與主表PROVINCE_ID關(guān)聯(lián)
主鍵為 ORDER_ID + PROPERTY_CODE
要求,取得 主表:MASTER 中STATE為1的記錄,并映射成易于操作的java對象。
并關(guān)聯(lián)子表,ORDER_ID、TERMINAL_VENDER、PROVINCE_ID作為查詢子表的條件。
將查詢出的子表數(shù)據(jù)映射成List<Object> ,作為 主表映射成對象的一個 成員變量。
以便后續(xù)操作。
定義java對象 Master,對應(yīng)主表數(shù)據(jù):

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

定義Detail類,對應(yīng)子表數(shù)據(jù):

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

sql如下配置:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

這樣所有的工作都OK,
執(zhí)行
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" />
的配置,
即 將主表中的值傳到 子查詢當中作為查詢條件,
這樣取得的數(shù)據(jù)就是 有關(guān)系的了。
本文為原創(chuàng),歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處BlogJava。