gpt4 book ai didi

java - JPA - 使用 CriteriaBuilder 的 Oracle 位操作

转载 作者:搜寻专家 更新时间:2023-11-01 03:06:29 25 4
gpt4 key购买 nike

我正在使用 CriteriaBuilder 动态查询数据库,所有预测都是动态生成的。

我现在面临的唯一问题是将此原生 oracle SQL 转换为 CriteriaBuilder API。

BITAND 示例:https://stackoverflow.com/a/10617716/810277

请有人建议我使用 JPA CriteriaBuilder 的方法。

提前致谢。

最佳答案

你可以使用数学技巧来做同样的事情(虽然有点慢):

事实:

  • 除以 2^х 会将位右移 x(示例1011010/1000=1011)
  • z mod 2 = 1 如果最右边的位是 1(例如 1011 mod 2 = 1)

所以在 Criteria API 中它会是这样的:

    int mask = 0b00100;
Path<Integer> fieldToTest = root.<Integer>get("fieldToTest");
Expression<Integer> div = cb.quot(fieldToTest, mask).as(Integer.class);
Expression<Integer> mod = cb.mod(div, 2);
Predicate maskMatched = cb.equal(mod, 1);

关于java - JPA - 使用 CriteriaBuilder 的 Oracle 位操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20570481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com