什么是hibernate查询中的“bw_and”

时间:2017-05-16 08:04:42

标签: sql hibernate hql

我发现在我的项目中实现了一个奇怪的查询,当我在调用getResultList()方法之前调试并检查persistance.query对象时,我发现的queryString是:

FROM AuthorityTbl a WHERE bw_and(a.setupFiltersIn, :setupFiltersIn) <> 0

此查询正常工作并从权限表中获取所有数据,其中setupFiltersIn =:setupFiltersIn。

我无法理解此查询语法中的 bw_and 是什么。 任何人都有任何想法吗?

我使用的是sqlServer2014,并且sqlServer无法接受bw_and的直接查询。

1 个答案:

答案 0 :(得分:0)

在我的应用程序中,下面使用了将 bw_和注册为按位运算符的

public class ExtendedMSSQLServerDialect extends SQLServerDialect {

    public ExtendedMSSQLServerDialect() {
        super();
        registerFunction("bw_and", new BitwiseSQLFunction(BitwiseSQLOperator.AND, "bw_and"));
        registerFunction("bw_or", new BitwiseSQLFunction(BitwiseSQLOperator.OR, "bw_or"));
        registerFunction("cast_text_to_varchar_of_length", new CastTextToVarcharSQLFunction("cast_text_to_varchar_of_length"));
    }
}