代码之家  ›  专栏  ›  技术社区  ›  Jacob

无法转换模型-spring引导和API联接条件中存在内部错误

  •  2
  • Jacob  · 技术社区  · 6 年前

    {
    "timestamp": "2018-09-10T10:54:01.163+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "com.example.model.Roles cannot be cast to 
    

    }

    这里我没有使用元模型生成的类。不用我实现的。但仍然得到同样的错误。

    1 回复  |  直到 6 年前
        1
  •  3
  •   user998692    6 年前

    有两件事不对:

    1. multiselect() javax.persistence.criteria.Join 它的参数。
    2. 您的查询条件与联接完全无关,因为字段上的条件 nuserId 可以完全填充 Users 只有桌子。

    如果你想两者兼得的话 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();