如何在HQL中使用按位运算符?

Hus*_*bir 3 nhibernate hql

在HQL中,如何使用按位运算符?我希望生成的 SQL 查询看起来像

SELECT RoleId, RoleName, RolePerms WHERE (RolePerms & @Parameter) = @Parameter
Run Code Online (Sandbox Code Playgroud)

然而,编写这个 HQL

select from Role where (RolePerms & :param) = :param
Run Code Online (Sandbox Code Playgroud)

给我这个错误:NHibernate.Hql.Ast.ANTLR.QuerySyntaxException:抛出了“Antlr.Runtime.NoViableAltException”类型的异常。

Hus*_*bir 5

我找到了解决这个问题的方法。这样编写 HQL 是可行的:

select r from Role r where (r.Permissions & :param) > 0
Run Code Online (Sandbox Code Playgroud)