我们在我工作的项目上创建了一个通用的搜索客户端。 它是一个简单的搜索插件,允许我们搜索实体的属性。
例如:
public class Movie {
private String id;
private String director;
private String title;
//set-getters
}
如果我们需要找到特定的电影,我们可以做以下事情:
movie.title='some title'
movie.title='some title' and director='bob'
如果在某个时间点我们添加属性X. 我们可以这样做:
movie.X='Y'
我们的搜索解决方案中没有任何代码更改。
这对我们来说非常好(对于基本搜索),但现在我遇到了一个问题。我们的一个实体有一个名为“properties”的属性,当我们尝试搜索这个时,会抛出一个错误..
"org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: generatedAlias1 near line 1, column 149 [select generatedAlias0 from N as generatedAlias1, S as generatedAlias0 where ( N.properties is null ) and ( N.id=S.node )]
如果我在本地数据库上运行生成的查询,则当我使用搜索端点时,它会失败。 Properties是实体上的String字段和DB中的VARCHAR。
知道出了什么问题吗?
答案 0 :(得分:0)
已将“属性”更改为“选项”。似乎属性是基础查询构建库中的保留字