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