Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
如何获得联接表';属性来检查在使用Hibernate实现查询时字符串是否等于它_Hibernate_Jpa_Criteria_Criteria Api - Fatal编程技术网

如何获得联接表';属性来检查在使用Hibernate实现查询时字符串是否等于它

如何获得联接表';属性来检查在使用Hibernate实现查询时字符串是否等于它,hibernate,jpa,criteria,criteria-api,Hibernate,Jpa,Criteria,Criteria Api,我使用的是Hibernate版本5.4.2 我正在使用CriteriaBuilder和CriteriaQuery生成一个条件查询,以获得具有请求的联接表的“name”属性的一些结果,但在该过程中我遇到异常。我想检查雇员的姓名是否等于我提到的字符串员工是项目中的OneToMany属性。以下是查询: CriteriaBuilder-CriteriaBuilder=getSession().getCriteriaBuilder(); CriteriaQuery CriteriaQuery= creat

我使用的是Hibernate版本5.4.2

我正在使用
CriteriaBuilder
CriteriaQuery
生成一个条件查询,以获得具有请求的联接表的“name”属性的一些结果,但在该过程中我遇到异常。我想检查雇员的姓名是否等于我提到的字符串<代码>员工是
项目
中的OneToMany属性。以下是查询:

CriteriaBuilder-CriteriaBuilder=getSession().getCriteriaBuilder();
CriteriaQuery CriteriaQuery=
createQuery(Project.class);
Root projectTableRoot=criteriaQuery.from(Project.class);
projectTableRoot.alias(“员工”);
谓词employeePredicate=criteriaBuilder.like(projectTableRoot.get(“employee”).get,“%”+StringUtils.lowerCase(employee.getName())+“%”;
实体:

公共类项目表{
@OneToMany(mappedBy=“projectTable”,cascade=CascadeType.ALL,fetch=FetchType.LAZY)
private List employee=Lists.newArrayList();
}
公共类雇员表{
@manytone(fetch=FetchType.LAZY)
@JoinColumn(name=“project\u employee\u fk”,referencedColumnName=“id”)
@扩散忽略
私有项目表;
}

当两个实体:Comment和Post,其中Comment@manytone Post

CriteriaBuilder criteriaBuilder = getSession().getCriteriaBuilder();
CriteriaQuery<Comment> criteriaQuery = criteriaBuilder.createQuery(Comment.class);

Root<Comment> root = getRoot(criteriaQuery);

Join<Comment, Post> joinPost = root.join("post");
Predicate predicate = criteriaBuilder.equal(joinPost.get("id"), 2L);

criteriaQuery
        .select(root)
        .where(predicate);

return getSession()
        .createQuery(criteriaQuery)
        .getResultList();
CriteriaBuilder-CriteriaBuilder=getSession().getCriteriaBuilder();
CriteriaQuery-CriteriaQuery=criteriaBuilder.createQuery(Comment.class);
Root=getRoot(criteriaQuery);
Join-joinPost=root.Join(“post”);
谓词=criteriaBuilder.equal(joinPost.get(“id”),2L);
标准查询
.选择(根目录)
.where(谓语);
返回getSession()
.createQuery(criteriaQuery)
.getResultList();

当两个实体:Comment和Post,其中Comment@manytone Post

CriteriaBuilder criteriaBuilder = getSession().getCriteriaBuilder();
CriteriaQuery<Comment> criteriaQuery = criteriaBuilder.createQuery(Comment.class);

Root<Comment> root = getRoot(criteriaQuery);

Join<Comment, Post> joinPost = root.join("post");
Predicate predicate = criteriaBuilder.equal(joinPost.get("id"), 2L);

criteriaQuery
        .select(root)
        .where(predicate);

return getSession()
        .createQuery(criteriaQuery)
        .getResultList();
CriteriaBuilder-CriteriaBuilder=getSession().getCriteriaBuilder();
CriteriaQuery-CriteriaQuery=criteriaBuilder.createQuery(Comment.class);
Root=getRoot(criteriaQuery);
Join-joinPost=root.Join(“post”);
谓词=criteriaBuilder.equal(joinPost.get(“id”),2L);
标准查询
.选择(根目录)
.where(谓语);
返回getSession()
.createQuery(criteriaQuery)
.getResultList();