Java PSQLException:Can';无法推断SQL类型。。。使用setObject()(我正在使用它!)

Java PSQLException:Can';无法推断SQL类型。。。使用setObject()(我正在使用它!),java,database,rest,jersey,uuid,Java,Database,Rest,Jersey,Uuid,嗨,也许我能在这里再次得到帮助!我正在测试一个服务器,以连接到数据库,到目前为止,它可以工作,我可以插入UUID数据。但是,当我尝试迁移到另一个项目时,相同的功能无法正常工作。它不会将数据保存在数据库中…我已经检查了所有内容,但一定有什么我没有注意到的问题。。。任何帮助或指导都将不胜感激 package ... imports ... @Path("/UserPoints") public class getNewPoints { @Path("/getNewPoints")

嗨,也许我能在这里再次得到帮助!我正在测试一个服务器,以连接到数据库,到目前为止,它可以工作,我可以插入UUID数据。但是,当我尝试迁移到另一个项目时,相同的功能无法正常工作。它不会将数据保存在数据库中…我已经检查了所有内容,但一定有什么我没有注意到的问题。。。任何帮助或指导都将不胜感激

package ...


imports ...

@Path("/UserPoints")
public class getNewPoints {

    @Path("/getNewPoints")
    @GET
    @Produces(MediaType.TEXT_PLAIN)

    public Response getUserPoints(@QueryParam("user_id") UUID username,
                                   @QueryParam("point_id") int pointId,
                                   @QueryParam("earned_points") int points
    ) {
        try {
            if (username == null)
                throw new Exception("Invalid data");
            else {
                Class.forName("org.postgresql.Driver");
                Connection connection  = DriverManager.getConnection(DBURL,DBUSER, DBPASS);
                PreparedStatement statement = connection.prepareStatement(SQLQuery.getQuery("new_earned_points"));
                statement.setObject(1, UUID.fromString(username.toString()));  //THIS WORKS IN THE ORIGINAL PROJECT
                statement.setInt(2, pointId);
                statement.setInt(3, points);
                statement.executeUpdate();
                statement.close();
                System.out.println("points.. on get New Points... " + points);
            }

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
        }
        return Response.status(Response.Status.OK).entity("new points added to user " + pointId).build();
    }

}

解决方案检查stacktrace后,我注意到postgresql版本是旧版本。。。所以我在pom中更新了它,然后它就开始工作了

参数是用户名还是用户ID?用户名是字符串还是UUID?因为在UUID上调用toString()然后从中生成新的UUID没有多大意义。它是数据库中的用户id,我更改了公共响应中的参数以匹配用户id,但仍然得到了错误……当然,您可以替换向演示此问题的用户提交的堆积如山的代码。这样做的练习将对你有用,结果不仅对我们这些可能想回答这个问题的人有帮助,而且对以后阅读它的每个人也有帮助。谢谢你,对此我很抱歉。。。顺便说一句,我修复了它,它只是pom中posgresql的版本。。。再次为堆积如山的代码感到抱歉