can't infer register for "EN2" because its behavior does not match any supported regis

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了can't infer register for "EN2" because its behavior does not match any supported regis相关的知识,希望对你有一定的参考价值。

无法根据EN2判定其代表哪个寄存器,因为其并不符合任何已支持的寄存器模型。 参考技术A 不能推断注册为“工程”,其行为不符合任何支持注册模型

PSQLException: Can't infer the SQL type ... 使用 setObject() (我正在使用它!)

【中文标题】PSQLException: Can\'t infer the SQL type ... 使用 setObject() (我正在使用它!)【英文标题】:PSQLException: Can't infer the SQL type ... Use setObject() (I am using it!)PSQLException: Can't infer the SQL type ... 使用 setObject() (我正在使用它!) 【发布时间】:2018-12-02 02:44:41 【问题描述】:

嗨,也许我可以再次在这里获得帮助!我正在测试服务器以连接到数据库,到目前为止它可以工作,我可以插入 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();
    


解决方案检查堆栈跟踪后,我注意到 postgresql 版本是旧版本...所以我在 pom 中更新了它,然后它工作了。

【问题讨论】:

参数是username还是useridusername 是字符串还是 UUID?因为在 UUID 上调用 toString() 并从中生成新的 UUID 没有多大意义。 它是数据库中的 user_id,我将公共响应中的参数更改为匹配 user_id 但仍然出现错误.... 当然,您可以替换您提交给minimal reproducible example 的大量代码来演示问题。这样做的练习将对您有用,其结果不仅对我们这些可能想要回答问题的人有所帮助,而且对以后阅读它的每个人都有帮助。 谢谢,我很抱歉......顺便说一句,我修复了它只是 pom 中的 posgresql 版本......再次为代码山感到抱歉 【参考方案1】:

我正在发布已编辑到原始问题中的答案:

解决方案检查堆栈跟踪后,我注意到 postgresql 版本是旧版本...所以我在 pom 中对其进行了更新,然后它就可以工作了。

【讨论】:

以上是关于can't infer register for "EN2" because its behavior does not match any supported regis的主要内容,如果未能解决你的问题,请参考以下文章

vue.js报错:Module build failed: Error: No parser and no file path given, couldn't infer a parser.(

Vue报错Module build failed: Error: No parser and no file path given, couldn't infer a p arser.(示

PSQLException: Can't infer the SQL type ... 使用 setObject() (我正在使用它!)

Mongoose Schema hasn't been registered for model

170318 11:44:26 [ERROR] Can't start server: can't create PID file: No space left on device

Can't find model 'en'