JPQL查询位标志

时间:2011-09-03 07:38:48

标签: jpql

我在类型为Long的msql表列中,此列表示位falgs。

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

我试试:

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&面具   := mask],第1行,第103列:意外令牌[mask]。内部   例外:NoViableAltException(78!= [652:1:   simpleConditionalExpressionRemainder [Object left]返回[Object   node] :( n = comparisonExpression [left] |(n1 = NOT)?n =   conditionWithNotExpression [(n1!= null),left] | IS(n2 = NOT)? 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)

1 个答案:

答案 0 :(得分:3)

由于JPQL不支持按位操作,因此无法完成。