Jpa JPQL:位置为[1]的参数不存在
我正在与JPA和JPQL合作。我希望使用JPQL获取并加入一个集合,该集合是“main”实体的属性。以下是我的源代码:Jpa JPQL:位置为[1]的参数不存在,jpa,jpql,Jpa,Jpql,我正在与JPA和JPQL合作。我希望使用JPQL获取并加入一个集合,该集合是“main”实体的属性。以下是我的源代码: public Rent getRentWithAllDetails(Rent rent) { Query queryString = em.createQuery(" select r from Rent r JOIN FETCH r.rentables where r.id = :rid").setParameter(1, rent.getId());
public Rent getRentWithAllDetails(Rent rent) {
Query queryString = em.createQuery(" select r from Rent r JOIN FETCH r.rentables where r.id = :rid").setParameter(1, rent.getId());
List <Rent> resultList = queryString.getResultList();
return resultList.get(0);
}
有人能帮我一下吗?您正在使用一个命名参数,因此在创建查询时应使用该名称绑定一个参数:
String sql = "select r from Rent r JOIN FETCH r.rentables where r.id = :rid";
Query queryString = em.createQuery(sql)
.setParameter("rid", rent.getId());
List<Rent> resultList = queryString.getResultList();
String sql=“从Rent r中选择r并加入FETCH r.rentables,其中r.id=:rid”;
Query queryString=em.createQuery(sql)
.setParameter(“rid”,rent.getId());
List resultList=queryString.getResultList();
请将代码更改为:
public Rent getRentWithAllDetails(Rent rent) {
Query queryString = em.createQuery(" select r from Rent r JOIN FETCH r.rentables where r.id = :rid").setParameter("rid", rent.getId());
List <Rent> resultList = queryString.getResultList();
return resultList.get(0);
}
public Rent getrent with alldetails(租金){
Query queryString=em.createQuery(“从租金中选择r,然后加入FETCH r.rentables,其中r.id=:rid”).setParameter(“rid”,Rent.getId());
List resultList=queryString.getResultList();
返回resultList.get(0);
}
如果多次重复
rid
,您可以相应地使用0,1..etc,否则使用参数名称本身。了解JPA编号(位置)参数和命名参数之间的区别。互联网上有很多文件告诉我们you@DN1,谢谢你的贡献!
public Rent getRentWithAllDetails(Rent rent) {
Query queryString = em.createQuery(" select r from Rent r JOIN FETCH r.rentables where r.id = :rid").setParameter("rid", rent.getId());
List <Rent> resultList = queryString.getResultList();
return resultList.get(0);
}