-
Type: Bug
-
Resolution: Unresolved
-
Priority: Major
-
None
-
Affects Version/s: 2.4.43
-
Component/s: S2JDBC
-
None
-
Environment:WindowsXP
JDK1.6.0_26
selectBySqlFileメソッドに、もしHashMapで引数を渡す場合、もしHashMapにキーは一つしかない、SQLファイルに変数は一つ以上場合、
SQLに変数名でMatchはできないです。実際実行されるSQLに複数変数(変数名が違う)に、同じ値をセットされるようです。
例
SQLファイル
SELECT * FROM TB_SYAIN WHERE ID = /id/
/IF age!= null && age!= ""/
AND AGE = /age/
/END/
java:
Map<String,String> paramSn=new HashMap<String,String>();
paramSn.put("id", "001");
jdbcManager.selectBySqlFile(
testDto.class,
"META-INF/sql/XXXX.sql",
paramSn).getResultList();
上記プログラムで実際に実行したSQLは下記ようになる
--------------------------------
SELECT * FROM TB_SYAIN WHERE ID = '001'
AND AGE = '001'
--------------------------------
変数ageと変数idは同じ値でセットされるようになっている。
この件は障害かどうか、こちらは分からないので、まず問題を提出致します。