如何在Solr DataImportHandler中的变量中转义单引号?

时间:2012-06-08 19:54:13

标签: solr dataimporthandler

我有一个DataImportHandler,用于从SQL数据库导入数据。根实体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以避免在包含单引号时出现问题?

1 个答案:

答案 0 :(得分:1)

我认为正确的语法是:

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

因为escapeSql是solr函数而不是正常的sql函数。