mybatis查詢巢狀之引數傳遞

2021-07-16 03:25:24 字數 1321 閱讀 2098

今天花了一下午時間發現了mybatis的乙個用法,就是查詢巢狀傳參的時候會把集合中的引數給「」用掉」,所謂用掉,就是作為引數傳遞給巢狀查詢的引數不會在返回結果集中顯示。解決辦法就是做兩個引數命不同的名字,乙個用作查詢巢狀的傳遞,另外乙個用作結果集的返回。

上例子:

select

bt.terminal_sys_no as mtsysno,

mca.terminal_no as terminalno,

mca.terminal_no as terminalno1,

bt.print_shop_name as printshopname,

bt.program as program,

bt.serv_model as servmodel,

mca.effect_date as effectdate,

mca.install_date as installdate,

mca.uninstall_date as uninstalldate,

bt.terminal_num as terminalnum,

bt.fixed_pos_num as fixedposnum,

bt.move_pos_num as moveposnum,

bt.mpos_num as mposnum,

bt.dev_type_remark as devtyperemark,

bt.rate_mode_*** as ratemode***,

mca.transaction_type as transactiontype,

bt.transaction_type as transactiontype1

left join bm_terminal bt on bt.terminal_sys_no = mca.terminal_sys_no

left join bm_branch bb on bb.branch_sys_no = bt.branch_sys_no

where bb.branch_sys_no = #

傳遞引數用了terminalno1,而返回結果用terminalno.

為了發現這個問題前後做了二三十條資料,排除了集合問題,引數個數問題,返回型別問題等情況,最後把問題限定到了只跟terminalno這個字段。因為沒有仔細對比缺失欄位跟原集合的關係,所以我沒有最終發現問題,還是讓小組長幫我搞定。這也說明了有的看似很詭異的問題其實是可以自己發現自己解決的,前提是解決方法要正確,並且要細心,乙個不小心就會讓你在最後關頭和成功失之交臂。當然,這只是個小問題,沒那麼嚴重,哈哈。

MyBatis傳多個引數

對於mybatis是個新手,在網上查了好多關於其傳引數的資料,試了好多種方法,其一如下 public int getgg zdsm param zddm string zddm param querytype string querytype,param time string time 在sql中...

Mybatis傳多個引數

dao層的函式方法 public user selectuser string name,string area select from user user t where user name and user area 其中,代表接收的是dao層中的第乙個引數,代表dao層中第二引數,更多引數一致...

mybatis傳多個引數

據我目前接觸到的傳多個引數的方案有三種。dao層的函式方法 1 publicuserselectuser stringname,string area 1 2 3 selectid selectuser resultmap baseresultmap select fromuser user twh...