QA@IT
«質問へ戻る

すみません、'と`が間違えてました。

12
本文
 java上で、以下のようなソースを記述しています。
 尚、データベースはMySQLです。
 
-'''
+```
 HashMap hashMap = new HashMap();
 hashMap.put("empIds","01,02");  //empIds
 jdbcManager.selectBySqlFile(EmployeeDto.class,"sample.sql", hashMap);
-'''
+```
 
 sqlファイルの中は以下のようなものです。
 
-'''
+```
 select 
   *
 from 
   AND emp_id in (/*$emp_id*/)
 /*END*/
 /*END*/
-'''
+```
 
 このSQLはエラーが出ます。
 ANDが抜けてしまい、
-'''
+```
 delete_id is null emp_id in ('001','002')
-'''
+```
 となってしまうからです。
 MySQLのログを確認したので、間違いなくそうなっています。
 
 よくわからないのですが、なぜANDは取り除かれたのでしょうか?
 
 私としては、
-'''
+```
   delete_id is null AND emp_id in (/*$emp_id*/)
-'''
+```
 としたいのですが、どうすればいいのでしょうか?

s2jdbcで、sqlファイルのIFコメント内が修正される。

SQLを編集して実行しようとしているのですが、SQLの構文が間違えてしまい、エラーとなってしまいます。
その原因が解らず、質問します。
尚、データベースはMySQLです。

java上で、以下のようなソースを記述しています。
尚、データベースはMySQLです。

HashMap hashMap = new HashMap();
hashMap.put("empIds","01,02");  //empIds
jdbcManager.selectBySqlFile(EmployeeDto.class,"sample.sql", hashMap);

sqlファイルの中は以下のようなものです。

select 
  *
from 
  t_emp
where
  delete_id is null
/*BEGIN*/
/*IF (empIds != null)*/
  AND emp_id in (/*$emp_id*/)
/*END*/
/*END*/

このSQLはエラーが出ます。
ANDが抜けてしまい、

delete_id is null emp_id in ('001','002')

となってしまうからです。
MySQLのログを確認したので、間違いなくそうなっています。

よくわからないのですが、なぜANDは取り除かれたのでしょうか?

私としては、

  delete_id is null AND emp_id in (/*$emp_id*/)

としたいのですが、どうすればいいのでしょうか?

SQLを編集して実行しようとしているのですが、SQLの構文が間違えてしまい、エラーとなってしまいます。
その原因が解らず、質問します。
尚、データベースはMySQLです。

java上で、以下のようなソースを記述しています。
尚、データベースはMySQLです。

```
HashMap hashMap = new HashMap();
hashMap.put("empIds","01,02");  //empIds
jdbcManager.selectBySqlFile(EmployeeDto.class,"sample.sql", hashMap);
```

sqlファイルの中は以下のようなものです。

```
select 
  *
from 
  t_emp
where
  delete_id is null
/*BEGIN*/
/*IF (empIds != null)*/
  AND emp_id in (/*$emp_id*/)
/*END*/
/*END*/
```

このSQLはエラーが出ます。
ANDが抜けてしまい、
```
delete_id is null emp_id in ('001','002')
```
となってしまうからです。
MySQLのログを確認したので、間違いなくそうなっています。

よくわからないのですが、なぜANDは取り除かれたのでしょうか?

私としては、
```
  delete_id is null AND emp_id in (/*$emp_id*/)
```
としたいのですが、どうすればいいのでしょうか?

質問を投稿

s2jdbcで、sqlファイルのIFコメント内が修正される。

SQLを編集して実行しようとしているのですが、SQLの構文が間違えてしまい、エラーとなってしまいます。
その原因が解らず、質問します。
尚、データベースはMySQLです。

java上で、以下のようなソースを記述しています。
尚、データベースはMySQLです。

'''
HashMap hashMap = new HashMap();
hashMap.put("empIds","01,02"); //empIds
jdbcManager.selectBySqlFile(EmployeeDto.class,"sample.sql", hashMap);
'''

sqlファイルの中は以下のようなものです。

'''
select
*
from
t_emp
where
delete_id is null
/BEGIN/
/IF (empIds != null)/
AND emp_id in (/$emp_id/)
/END/
/END/
'''

このSQLはエラーが出ます。
ANDが抜けてしまい、
'''
delete_id is null emp_id in ('001','002')
'''
となってしまうからです。
MySQLのログを確認したので、間違いなくそうなっています。

よくわからないのですが、なぜANDは取り除かれたのでしょうか?

私としては、
'''
delete_id is null AND emp_id in (/$emp_id/)
'''
としたいのですが、どうすればいいのでしょうか?

SQLを編集して実行しようとしているのですが、SQLの構文が間違えてしまい、エラーとなってしまいます。
その原因が解らず、質問します。
尚、データベースはMySQLです。

java上で、以下のようなソースを記述しています。
尚、データベースはMySQLです。

'''
HashMap hashMap = new HashMap();
hashMap.put("empIds","01,02");  //empIds
jdbcManager.selectBySqlFile(EmployeeDto.class,"sample.sql", hashMap);
'''

sqlファイルの中は以下のようなものです。

'''
select 
  *
from 
  t_emp
where
  delete_id is null
/*BEGIN*/
/*IF (empIds != null)*/
  AND emp_id in (/*$emp_id*/)
/*END*/
/*END*/
'''

このSQLはエラーが出ます。
ANDが抜けてしまい、
'''
delete_id is null emp_id in ('001','002')
'''
となってしまうからです。
MySQLのログを確認したので、間違いなくそうなっています。

よくわからないのですが、なぜANDは取り除かれたのでしょうか?

私としては、
'''
  delete_id is null AND emp_id in (/*$emp_id*/)
'''
としたいのですが、どうすればいいのでしょうか?