无法转换模型 - spring 引导和条件 API 加入中的内部错误
Model cannot be cast - internal error in spring boot and Criteria API Join
我正在尝试使用 spring 引导和标准 API 加入来加入并检索加入结果。在这里,我试图从第二个 table 中检索角色 ID,其中通过加入第一个 table 找到了匹配的用户 ID。当我 运行 我的查询时,我收到类似
的错误
错误更新
{
"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
的条件只能由 Users
table 完全填充。
如果你只是想同时获得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();
我正在尝试使用 spring 引导和标准 API 加入来加入并检索加入结果。在这里,我试图从第二个 table 中检索角色 ID,其中通过加入第一个 table 找到了匹配的用户 ID。当我 运行 我的查询时,我收到类似
的错误错误更新
{
"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
的条件只能由Users
table 完全填充。
如果你只是想同时获得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();