编程语言
首页 > 编程语言> > java – 使用JPA 1.0的CriteriaQuery

java – 使用JPA 1.0的CriteriaQuery

作者:互联网

是否可以在JPA 1.0中使用CriteriaQuery.我猜JPA 2.0不适用于Java Se(版本 – Java(TM)SE运行时环境(版本1.6.0_16-b01)).我绑着使用,

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Test> cq = cb.createQuery(Test.class);
Root<Test> test= cq.from(Test.class);

….

但是在javax.persistence中找不到CriteriaBuilder的定义.*; (尝试导入javax.persistence.criteria.CriteriaBuilder;以及)

如果不可能,我有什么最好的选择.我在后端使用hibernate,但仍然有非专有的方法来做到这一点?如果不是在休眠怎么办?

谢谢.

解决方法:

Is it possible to use CriteriaQuery with JPA 1.0.

不,JPA 1.0没有指定Criteria API,Criteria API是JPA 2.0新功能的一部分.

I guess JPA 2.0 not available with Java SE

JPA 1.0和JPA 2.0都不是Java SE(捆绑)的一部分.但是,您可以在Java SE中使用JPA(1.0或2.0).

(…) But could not find the definition of CriteriaBuilder in javax.persistence.*

如上所述,这不是JPA 1.0 API的一部分,如果您没有使用JPA 2.0实现,则无法找到它.

If it is not possible, what is the best option I have. I use hibernate in the backend, but still is there a non proprietary way to do this? if not how to do in hibernate?

在您的情况下,唯一的选择是使用Hibernate的专有API for Criteria Queries.您需要访问Session才能这样做:

org.hibernate.Session session = (Session) em.getDelegate(); 
Criteria crit = session.createCriteria(Cat.class);
crit.setMaxResults(50);
List cats = crit.list();

参考

> Chapter 15. Criteria Queries

标签:criteria-api,java,orm,jpa,hibernate
来源: https://codeday.me/bug/20190827/1739655.html