我写了一个查询,但是这个查询返回了这个错误。你有什么想法吗?我猜我因为括号而得到这个错误
@Query("select u from Context u where u.user.id <> :userId and u.publicWatch = 1 and u.isDeleted = 0 and (u.contextType.id IN :contextTypeId or u.status IN :status)")
Page<Context> findFilteredContexts(@Param("userId") Long userId,@Param("contextTypeId") List<Long> contextTypeId,@Param("status") List<String> status, Pageable pageable);
错误:
引起:java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException:意外的AST节点: {vector} [select count(u)from com.huawei.ti.ei.web.domain.Context u where u.user.id&lt;&gt; :userId和u.publicWatch = 1和u.isDeleted = 0和 (u.contextType.id IN(:contextTypeId_0_)或u.status IN:status_0_, :STATUS_1 _)]
答案 0 :(得分:0)
如果您使用的是旧版本的休眠,则必须用括号(:status)
包围IN参数
(HHH-5126)
受影响的版本3.5.1 -3.6,但查看有人报告更新版本的评论......