Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Hibernate5中,CriteriaQuery与Criteria的限制和投影是什么等价的?_Java_Hibernate_Hibernate Criteria - Fatal编程技术网

Java 在Hibernate5中,CriteriaQuery与Criteria的限制和投影是什么等价的?

Java 在Hibernate5中,CriteriaQuery与Criteria的限制和投影是什么等价的?,java,hibernate,hibernate-criteria,Java,Hibernate,Hibernate Criteria,在Hibernate 5弃用Criteria类之前,您可以将限制添加到Criteria中作为约束,并将投影作为select语句,如下所示 Criteria criteria = session.createCriteria(T.class) .add(Restrictions.or(Restrictions.eq(property, constraintValue) .set(Projection(Projections.projectionList() .add(Pro

在Hibernate 5弃用Criteria类之前,您可以将限制添加到Criteria中作为约束,并将投影作为select语句,如下所示

Criteria criteria = session.createCriteria(T.class)
    .add(Restrictions.or(Restrictions.eq(property, constraintValue)
    .set(Projection(Projections.projectionList()
    .add(Projections.property(selectValue)));
但是,既然您现在需要像这样使用CriteriaQuery

 CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
 CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(T.class);
 Root<T> root = criteriaQuery.from(T.class);
 criteriaQuery.select(root);

 Query<T> query = session.createQuery(criteriaQuery);
有多个示例,但事实证明,我们尝试重新创建的简单select语句可以这样做:

CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
CriteriaQuery<SELECTVALUETYPE> criteriaQuery = criteriaBuilder.createQuery(SELECTVALUETYPE.class);
Root<PARENTCLASS> root = criteriaQuery.from(PARENTCLASS.class);
criteriaQuery.select(root);
criteriaQuery.where(criteriaBuilder.equal(root.get(property), constraintValue));

Query<SELECTVALUETYPE> query = session.createQuery(criteriaQuery);
可以用下面的块表示

int ID = 1;
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
CriteriaQuery<String> criteriaQuery = criteriaBuilder.createQuery(String.class);
Root<User> root = criteriaQuery.from(User.class);
criteriaQuery.select(root.get("name");
criteriaQuery.where(criteriaBuilder.equal(root.get("ID"), ID));

Query<String> query = session.createQuery(criteriaQuery);

List<String>results = query.getResultList();
for(String name : results){
    System.out.println("Name: " + name);
}
Select name  
From Users  
Where ID = 1
int ID = 1;
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
CriteriaQuery<String> criteriaQuery = criteriaBuilder.createQuery(String.class);
Root<User> root = criteriaQuery.from(User.class);
criteriaQuery.select(root.get("name");
criteriaQuery.where(criteriaBuilder.equal(root.get("ID"), ID));

Query<String> query = session.createQuery(criteriaQuery);

List<String>results = query.getResultList();
for(String name : results){
    System.out.println("Name: " + name);
}