JPQL 查询位标志

标签 jpql

我的 msql 表中有 Long 类型的列,该列代表位错误。

我需要选择设置了所有几个标志的对象: 列值 & 标志 = 列值

我尝试:

javax.persistence.Query q = getEntityManager().createQuery("SELECT u FROM Userattributes u WHERE  u.myValueFlags & mask :=  mask");
q.setParameter("mask", mask);

但是我有一个语法错误:

Caused by: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: Exception Description: Syntax error parsing the query [SELECT u FROM Userattributes u WHERE u.userattributesPK.attributeID =:attributeId and u.myValueFlags & mask := mask], line 1, column 103: unexpected token [mask]. Internal Exception: NoViableAltException(78!=[652:1: simpleConditionalExpressionRemainder[Object left] returns [Object node] : (n= comparisonExpression[left] | (n1= NOT )? n= conditionWithNotExpression[(n1!=null), left] | IS (n2= NOT )? n= isExpression[(n2!=null), left] );]) at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1328) at com.sun.enterprise.container.common.impl.EntityManagerWrapper.createQuery(EntityManagerWrapper.java:425)

最佳答案

这是无法完成的,因为 JPQL 不支持按位运算。

关于JPQL 查询位标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7291822/

相关文章:

mysql - 根据另一个表值获取具有名称或 null 的项目列表

java - 如何在 JpaRepository 上运行自定义更新查询?(TransactionRequiredException)

java - 使用 jpql 和 jpa 从日期字段中提取年份

java - 我们如何在 JPQL 中包含/替换 "ON"关键字

java - 无法对 JPQL 中的列进行 ORDER BY

java - 如何使用连接定义 JPA 存储库查询

jpa - JPQL 中的转义字符

java - 如何在 JpaRepository 中构建 Spring JPA/JPQL 查询

java - 替换 jpa 中的月、年、日期函数

performance - 使用 JPA 获取存储在 TIMESTAMP 中的日期(按月或年)