Hibernate Query中为一个特定属性生成的错误

时间:2018-05-03 12:20:51

标签: java mysql sql hibernate

我们在我工作的项目上创建了一个通用的搜索客户端。 它是一个简单的搜索插件,允许我们搜索实体的属性。

例如:

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。

知道出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

已将“属性”更改为“选项”。似乎属性是基础查询构建库中的保留字