У меня есть модельный класс, который сопоставляется с базой данных postgres с использованием спящего режима. Мой класс модели:
@Entity
@Table(name="USER")
public class User {
@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")
private Timestamp 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: ERROR: column user0_.id does not exist
Моя база данных из оболочки bash выглядит следующим образом:
Как hibernate сопоставляет атрибуты класса класса столбцам таблицы? Совместим ли он только с параметром @Column(name="username")
или же он также пытается сопоставляться на основе типов данных и ограничений, таких как уникальный/автоматический инкремент?