org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist - Hibernate

后端 未结 6 2139
野性不改
野性不改 2021-02-05 02:47

I have a model class that is mapped to a postgres database using hibernate. My model class is:

@Entity
@Table(name=\"USER\")
public class User {

    @Id 
    @G         


        
6条回答
  •  囚心锁ツ
    2021-02-05 03:41

    I obtained using general names like user are making troubles in the app.

    I got the same issue as reported here with the following simple entity.

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.SequenceGenerator;
    
    @Entity
    public class User implements Serializable {
    
        private static final long serialVersionUID = 6843302791607583447L;
    
        @Id
        @SequenceGenerator(name = "user_id_seq", sequenceName = "user_id_seq", allocationSize = 1)
        @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_id_seq")
        private Long id;
    
        @Column
        private String name;
    
        @Column
        private String password;
    
        @Override
        public String toString() {
            return name;
        }
    
        public Long getId() {
            return id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(final String name) {
            this.name = name;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(final String password) {
            this.password = password;
        }
    
    }
    

    All i did was renaming the entity from User to Sessionxuser (and renaming the datatable from user to sessionxuser to fix this issue.

    Schema was still public.

    Since pre- or postfix some names like mycoolappuser or usermycoolapp to avoid troubles like this.

    Find below a list with reserved keywords and literals preventing using as table, column, and further customized names.

    https://www.postgresql.org/docs/8.1/sql-keywords-appendix.html

    In this case user is preserved for PostgreSQL, SQL:2003, SQL:1999 and SQL-92.

提交回复
热议问题