我发现在我的项目中实现了一个奇怪的查询,当我在调用getResultList()方法之前调试并检查persistance.query对象时,我发现的queryString是:
FROM AuthorityTbl a WHERE bw_and(a.setupFiltersIn, :setupFiltersIn) <> 0
此查询正常工作并从权限表中获取所有数据,其中setupFiltersIn =:setupFiltersIn。
我无法理解此查询语法中的 bw_and 是什么。 任何人都有任何想法吗?
我使用的是sqlServer2014,并且sqlServer无法接受bw_and的直接查询。
答案 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"));
}
}