query.list() 异常 java.lang.Integer 无法转换为 java.lang.String

query.list() Exception java.lang.Integer cannot be cast to java.lang.String

我在javax查询的时候遇到了错误 目前为止我还没有遇到过这样的错误,不知道为什么

@POST
@Path("/aa")
@Consumes(MediaType.APPLICATION_JSON)
public Response polaki(User user, @HeaderParam("Authorization") String authString, @HeaderParam("API_KEY") String apikey) throws Exception {
    if (authString.equals(UserSetting.Authorization) & apikey.equals(UserSetting.API_KEY)) {
        tx = session.getTransaction();

        tx.begin();
        Query query = session.createQuery("from Service where  service=:service");
        query.setParameter("service", user.getService());
        tx.commit();
        List ls= query.list(); // Eror

        return Response.status(200).entity("{\"message\":\"Service Eror\"}").build();
    } else {
        return Response.status(200).entity("{\"message\":\"Service Eror\"}").build();
    }
}

Exception java.lang.Integer cannot be cast to java.lang.String

你的user.getService()return是什么?一个整数?

试试这个例子,看看会发生什么:

query.setParameter("service", String.valueOf(user.getService()));

service 可能是您数据库中的 varchar(String-ish)。