我正在使用CriteriaBuilder动态查询数据库,所有预测都是动态生成的。
我现在面临的唯一问题是将这个本机oracle SQL转换为CriteriaBuilder API。
BITAND示例:https://stackoverflow.com/a/10617716/810277
请有人建议我使用JPA CriteriaBuilder。
提前致谢。
答案 0 :(得分:3)
你可以使用数学技巧做同样的事情(虽然有点慢):
事实:
所以在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);
答案 1 :(得分:0)
在JPA 2.0中,在JPQL / Criteria API中是不可能的。你不得不: 1.要么用Java做那个逻辑。 2.使用原生查询。
在JPA 2.1中,您可以使用Criteria API / JPQL中的function()
方法。