我需要在CriteriaQuery中添加类似Restrictions.sqlRestriction的内容。如何将SQL条件添加到CriteriaQuery?
我的代码:
CriteriaBuilder criteriaBuilder=entityManager.getCriteriaBuilder();
CriteriaQuery<Installation> criteriaQuery = criteriaBuilder.createQuery(Test.class);
Root<Installation> root = criteriaQuery.from(Test.class);
criteriaQuery.select(root);
答案 0 :(得分:2)
JPA Criteria允许使用function()
或其他具有JPQL等效项的子句。既然你没有说出什么是“SQL条件”那么就可以说了。你当然不能将一些随机SQL转储到JPQL过滤器中,例如
答案 1 :(得分:0)
我不确定是否可以做到。我建议你这3个选项:
答案 2 :(得分:0)
解决我的问题(调用Oracle函数&#39; bitand&#39;)
criteriaQuery.where(criteriaBuilder.notEqual(criteriaBuilder.function("bitand", Long.class, root.get(Test_.status).get(Status_.id), criteriaBuilder.parameter(Long.class, "status")),0));
TypedQuery<Installation> query = em.createQuery(criteriaQuery.select(root));
query.setParameter("status", 1L);