可以将JPQL和CriteriaQuery混合使用吗?
我有一个在JPQL语言中包含where条件的String和一个已经构建并从其他地方获得的CriteriaQuery。我想知道是否可以在CriteriaQuery.where()中添加where条件String。where条件可以是多个条件“和-ed”/“或-ed”在一起。
我可以在不解析where条件String的情况下执行此操作吗
发布于 2011-03-02 08:54:15
您可以做的一件事是将CriteriaQuery转换为JPQL,并连接字符串的两个WHERE部分。
参见http://www.datanucleus.org/products/accessplatform/jpa/jpql_criteria.html上的“标准查询的JPQL等价物”
发布于 2011-03-03 03:21:48
如前所述,在JPA中没有对此的通用规范(据我所知)。然而,在实现中,可能存在将查询转换为表达式或限制的方法。在TopLink中(大概在EclipseLink中),Expression.postfixSQL和prefixSQL是最接近的方法。Hibernate有Restrictions.sqlRestriction。
我不知道是否有其他的实现。
发布于 2011-02-27 17:17:46
如果在JPA1.0或2.0中有办法做到这一点,我不知道,但this在另一个问题中的回答表明,JPQL和CriteriaQuery的混合将在JPA2.1中提供(在未来的某个时候)。
https://stackoverflow.com/questions/5083102
复制相似问题