无法强制转换模型-spring引导和标准API联接中存在内部错误
我正在尝试使用spring引导和标准API连接来连接和检索连接结果。在这里,我试图从第二个表中检索角色id,在第二个表中,通过连接第一个表找到了用户id匹配项。当我运行查询时,我得到的错误如下: 错误更新无法强制转换模型-spring引导和标准API联接中存在内部错误,spring,inner-join,criteria-api,Spring,Inner Join,Criteria Api,我正在尝试使用spring引导和标准API连接来连接和检索连接结果。在这里,我试图从第二个表中检索角色id,在第二个表中,通过连接第一个表找到了用户id匹配项。当我运行查询时,我得到的错误如下: 错误更新 { "timestamp": "2018-09-10T10:54:01.163+0000", "status": 500, "error": "Internal Server Error", "message": "com.example.model.Roles cannot be cast
{
"timestamp": "2018-09-10T10:54:01.163+0000",
"status": 500,
"error": "Internal Server Error",
"message": "com.example.model.Roles cannot be cast to
}
这里我没有使用元模型生成的类。没有使用我实现的。但是仍然得到相同的错误。有两件事是错误的:
multiselect()
获取选定字段的列表。不能向其参数传递javax.persistence.criteria.Join
nuserId
上的条件只能由用户填写
User
及其UserRoleMapping
,可以尝试:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Users> cq = cb.createQuery(Users.class);
Root<Users> rootRoles = cq.from(Users.class);
rootRoles.fetch("roleUserRoleMappingMappingJoin", JoinType.LEFT);
cq.select(rootRoles).where(cb.equal(rootRoles.get("nuserId"),nuserID));
List<Users> roleJoinResultObj = em.createQuery(cq).getResultList();
CriteriaBuilder cb=em.getCriteriaBuilder();
CriteriaQuery cq=cb.createQuery(Users.class);
Root rootRoles=cq.from(Users.class);
获取(“roleUserRoleMappingMappingJoin”,JoinType.LEFT);
cq.select(rootRoles).where(cb.equal(rootRoles.get(“nuserId”),nuserId));
List roleJoinResultObj=em.createQuery(cq.getResultList();
是。我了解执行的方式。谢谢你的回复。