1

我有一个 DataImportHandler 用于从 SQL 数据库导入数据。根实体,Foo有许多Bars。该BarFoo.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)}'

因为escapeSql是 solr 函数,而不是普通的 sql 函数。

于 2012-06-09T09:00:51.450 回答