【发布时间】:2013-10-15 14:16:05
【问题描述】:
我正在使用 spring-neo4j。我有一个名为 User 的实体,具有属性(用户名、名字、姓氏),名字和姓氏是可选属性。
现在我想实现一个用户搜索查询,它将搜索所有三个属性。
@Query(value = "start user=node:__types__(className='com.xxx.entity.User') where user.username =~ {0} or user.firstName =~ {0} or user.lastName =~ {0} return user")
List<User> searchByName(String keyword);
查询失败,说明:
The property 'firstName' does not exist on Node[21].
但是,如果我只搜索用户名,它会给我结果。我尝试使用?可空属性的运算符:
@Query(value = "start user=node:__types__(className='com.xxx.entity.User') where user.username =~ {0} or user.firstName? =~ {0} or user.lastName? =~ {0} return user")
List<User> searchByName(String keyword);
但这会获取我缺少 firstName 或 lastName 的所有节点。
知道如何实现这个查询吗?
【问题讨论】: