1

SQL データベースからデータをインポートするための DataImportHandler があります。ルート エンティティにFooは、多くBarの があります。Barテーブルは外部Foo.Nameキーとして使用します。一部の Foo 名には、. のように一重引用符が含まれていSTW'sます。

エンティティのインポート クエリBarは次のようになります。

select name from Bar where Foo_Name = ${Foo.Name} 

ただし、Foo.Name に一重引用符が含まれている場合、インポートは SQL 例外 で失敗しますIncorrect syntax near 's

パラメータをラップしようとしましescapeSql(${Foo.Name})たが、呼び出されていないようです-実行されているSQLはwhere Foo_Name = 'escapeSql(STW's)'

Foo.Name単一引用符が含まれている場合の問題を回避するために、を適切にエスケープするにはどうすればよいですか?

4

1 に答える 1

2

正しい構文は次のとおりです。

Foo_Name = '${escapeSql(Foo.Name)}'

escapeSqlsolr関数であり、通常のsql関数ではないためです。

于 2012-06-09T09:00:51.450 に答える