我有一个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
以避免在包含单引号时出现问题?
答案 0 :(得分:1)
我认为正确的语法是:
Foo_Name = '${escapeSql(Foo.Name)}'
因为escapeSql
是solr函数而不是正常的sql函数。