zoukankan      html  css  js  c++  java
  • 关于postgresql报 ERROR: XXX does not exist

    postgresql是区分大小写的

    受限标识符或被引号修饰的标识符。它是由双引号(")包围的一个任意字符序列。一个受限标识符总是一个标识符而不会是一个关键字。因此"select"可以用于引用一个名为“select”的列或者表,而一个没有引号修饰的select则会被当作一个关键词,从而在本应使用表或列名的地方引起解析错误。在上例中使用受限标识符的例子如下:UPDATE "my_table" SET "a" = 5;

    在PostgreSQL关系型数据库中存在关键字的使用的问题,例如user 做表名,create table user (id int, name,varchar(20));创建的时候需要给表名user加上双引号"user";

    我有一个使用hibernate映射到postgres数据库的模型类。我的模型类是:



      @Entity 
    @Table(name =“USER”)
    public class用户{

    @Id
    @GeneratedValue
    @Column(name =“id”)
    private long id;

    @Column(name =“username”,unique = true)
    private String username;

    @Column(name =“email”)
    private String email;

    @Column(name =“created”)
    私有时间戳已创建;

    public User(long id,String username,String email){
    this.id = id;
    this.username = username;
    this.email = email;
    }
    }



    我尝试使用用户名“adam”检索用户使用以下查询:



      tx = session.beginTransaction(); 
    TypedQuery< User> query = session.createQuery(“FROM User u WHERE u.username =:username”,User.class).setParameter(“username”,“adam”);
    user = query.getSingleResult();



    我得到一个例外情况:



      org.postgresql.util.PSQLException:错误:列user0_.id不存在



    我的bash shell数据库如下所示:





    hibernate如何将类属性映射到表列?它是否仅基于 @Column(name =“username”)匹配,还是根据数据类型和约束(例如唯一/自动增量)尝试匹配?

    解决方法
     

    解释



    它给你这个错误:



      org.postgresql.util.PSQLException:错误:列user0_.id不存在



    因为当你创建一个数据库PostgreSQL时,它会创建一个名为 public 的默认模式,所以当你没有在实体中指定名称,它将在公共模式中自动检查,因为您收到此错误。



    另一件事确认模式名称是正确的,错误说:



     列user0_.id不存在



    而不是:



     列myapp.user0_.id不存在
    ------- ^ ---- ^



    确认查询使用公共架构而不是真正的架构myapp






    解决方案



    要解决此问题,您必须指定架构名称,如下所示:



      @Table(name =“USER”,schema =“myapp”)






    建议



    不要在PostgreSQL中使用表格或列名称中的大写字母。



      @Table(name =“user”,schema =“myapp”)
    外加Navicat破解过程https://www.jianshu.com/p/749b3f78039b
  • 相关阅读:
    hlgoj 1766 Cubing
    Reverse Linked List
    String to Integer
    Bitwise AND of Numbers Range
    Best Time to Buy and Sell Stock III
    First Missing Positive
    Permutation Sequence
    Next Permutation
    Gray Code
    Number of Islands
  • 原文地址:https://www.cnblogs.com/Treesir/p/11492254.html
Copyright © 2011-2022 走看看