バグと思われるものがあります。テキストに一重引用符が含まれるエントリをデータベースに追加できます。
ただし、QueryBuilder を使用して検索すると、xyz のようなテキストに対して、xyz に一重引用符が含まれていると、MySQL が不正な SQL について不平を言うようになります。
自分ですべての文字列を解析する以外に、Ormlite に文字列を「浄化」するために呼び出すことができるメソッドはありますか?
サンプルコードは次のとおりです。
public boolean isDuplicate () {
QueryBuilder<Company, Long> qb = getDao().queryBuilder() ;
Where<Company, Long> where = qb.where() ;
try {
if (Strings.isValid(name))
where.like("name", name) ;
if (Strings.isValid(regNo)) {
if (Strings.isValid(name))
where.or() ;
where.eq("regNo", regNo) ;
List<Company> res = where.query() ;
if (res != null && res.size() > 0)
return true ;
else
return false ;
}
} catch (SQLException e) {
GlobalConfig.log(e, true);
}
return false ;
}
会社名に一重引用符が含まれていると、SQL エラーが発生します。
Well Don't Delete Me 2 Please Pte Ltd のデフォルト エントリの作成 [12-07-2013 13:45:42] SQL 構文にエラーがあります。「t Delete Me 2 Please Pte Ltd.」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。OR
regNo
= 'delete' )' 1 行目
どんな提案でも大歓迎です。