2012-06-08 38 views
0

我有一个DataImportHandler用于从SQL数据库导入数据。根实体Foo有很多Bar s。 Bar表使用Foo.Name作为其外键。一些Foo名称在其中有单引号 - 例如STW's如何在Solr DataImportHandler中的变量中转义单引号?

Bar实体进口查询是这样的:

然而,当Foo.Name包含一个单引号导入失败的Incorrect syntax near 's SQL异常。

我已经试过包装与escapeSql(${Foo.Name})的参数,但它不会出现被称为 - 正在执行的SQL是where Foo_Name = 'escapeSql(STW's)'

如何正确逃生的Foo.Name以免出现问题时,它们含有单引号?

回答

1

我认为正确的语法是:

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

因为escapeSql是Solr的功能,而不是一个正常的SQL函数。