Ich weiß, dass diese Frage viele Male auf stackoverflow gestellt wurde und ich alle durchlaufen habe. Aber nichts hat für mich funktioniert. Ich poste diese Frage erneut. Ich habe einen Tisch in Postgres. DDL ist unten.Ruhezustand: PSQLException: Fehler: Spalte "this_.user_id" existiert nicht
CREATE TABLE APPUSERMASTER (
USER_ID BIGSERIAL NOT NULL,
USER_NAME VARCHAR(20) NOT NULL,
FIRST_NAME VARCHAR(20) NOT NULL,
SECOND_NAME VARCHAR(20) NOT NULL,
EMAIL VARCHAR(50) NOT NULL,
PASSWORD TEXT NOT NULL,
PRIMARY KEY (USER_ID)
) ;
Meine POJO-Klasse ist unten.
@Entity
@Table(name = "appusermaster", schema = "public")
public class UserMaster implements java.io.Serializable {
private long userId;
private String userName;
private String firstName;
private String secondName;
private String email;
private String password;
public UserMaster() {
}
@Id
@Column(name = "user_id", unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
public long getUserId() {
return this.userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
@Column(name = "user_name", nullable = false, length = 20)
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Column(name = "first_name", nullable = false, length = 20)
public String getFirstName() {
return this.firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@Column(name = "second_name", nullable = false, length = 20)
public String getSecondName() {
return this.secondName;
}
public void setSecondName(String secondName) {
this.secondName = secondName;
}
@Column(name = "email", length = 50)
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
@Column(name = "password", length = 20)
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
}
In meiner DAO-Klasse habe ich unter dem Code.
public UserMaster getUserByUserName(String userName) {
Criteria criteria = getSession().createCriteria(UserMaster.class);
criteria.add(Restrictions.eq("userName", userName));
UserMaster userMaster = (UserMaster) criteria.uniqueResult();
return userMaster;
}
Aber immer wenn ich diesen Code ausführe, komme ich unter Ausnahme.
[WARN ] 2017-07-18 18:24:23.105 [http-bio-8181-exec-9] SqlExceptionHelper - SQL Error: 0, SQLState: 42703
[ERROR] 2017-07-18 18:24:23.110 [http-bio-8181-exec-9] SqlExceptionHelper - ERROR: column this_.user_id does not exist
Position: 8 org.hibernate.exception.SQLGrammarException: could not extract ResultSet
Caused by: org.postgresql.util.PSQLException: ERROR: column this_.user_id does not exist
Position: 8
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2412)
Was mache ich falsch? Hibernate-Version ist 5.1.8.Final. Frühlingsversion ist 4.3.5.
Ich schaltete Show-SQL-Eigenschaft von Winterschlaf und unterhalb sql wird generiert.
Hibernate:
select
this_.user_id as user_id1_0_0_,
this_.email as email4_0_0_,
this_.first_name as first_na5_0_0_,
this_.password as password6_0_0_,
this_.second_name as second_n7_0_0_,
this_.user_name as user_nam9_0_0_
from
public.appusermaster this_
where
this_.user_name=?
[WARN ] 2017-07-18 19:22:40.797 [http-bio-8181-exec-12] SqlExceptionHelper - SQL Error: 0, SQLState: 42703
[ERROR] 2017-07-18 19:22:40.814 [http-bio-8181-exec-12] SqlExceptionHelper - ERROR: column this_.user_id does not exist
Position: 8
Vielleicht ist es ein dummer Vorschlag, aber versuchen Sie 'return this.userId;' durch 'return userId;' zu ersetzen. – Berger
@Berger Das klingt für mich überhaupt nicht dumm. Wenn Sie nach diesem Fehler suchen, sehen Sie normalerweise einen Tabellennamen, der der Spalte vorangestellt ist und nicht gefunden werden kann. –
@Berger Ich habe das von Getter entfernt und es funktioniert nicht. Dank –