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
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
.