【问题标题】:JPQL Querying Bit FlagsJPQL 查询位标志
【发布时间】:2011-11-09 15:31:40
【问题描述】:

我的msql表中有Long类型的列,该列代表位故障。

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

我试试:

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

但我有一个语法错误:

原因:java.lang.IllegalArgumentException:发生异常 在 EntityManager 中创建查询时:异常说明: 解析查询的语法错误 [SELECT u FROM Userattributes u WHERE u.userattributesPK.attributeID =:attributeId 和 u.myValueFlags & 掩码 := 掩码],第 1 行,第 103 列:意外标记 [掩码]。内部的 异常:NoViableAltException(78!=[652:1: simpleConditionalExpressionRemainder[Object left] 返回 [Object 节点] : (n= compareExpression[left] | (n1= NOT )? n= conditionWithNotExpression[(n1!=null), 左] |是(n2= 不是)? n= isExpression[(n2!=null), left] );]) 在 org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1328) 在 com.sun.enterprise.container.common.impl.EntityManagerWrapper.createQuery(EntityManagerWrapper.java:425)

【问题讨论】:

    标签: jpql


    【解决方案1】:

    这无法做到,因为 JPQL 不支持按位运算。

    【讨论】:

      猜你喜欢
      • 2017-03-10
      • 2013-11-13
      • 2011-07-30
      • 2021-04-06
      • 2017-11-30
      • 2013-06-16
      • 2011-09-17
      • 2014-01-12
      • 2015-08-18
      相关资源
      最近更新 更多