Hibernate запрос не работает в Java Spring - PullRequest
0 голосов
/ 19 марта 2011

У меня есть этот код и он работает нормально

Registration person = (Registration) session.get(Registration.class, 8);
      person.setConfirmed(true);
      session.save(person);

но это не работает, говорит ошибка отображения

String query = "FROM registration WHERE user_id = 8";
 Query query2 = session.createQuery(query);
 Registration person = (Registration) query2.uniqueResult();
 person.setConfirmed(true);
 session.save(person);

Это мой регистрационный класс

@Column(name = "user_id")
    public Integer getUserId() {
        return userId;
    }

Ответы [ 2 ]

4 голосов
/ 19 марта 2011

Поскольку вы используете неродной язык запросов, вам, вероятно, нужно что-то вроде

String query = "FROM Registration WHERE userId = 8";
2 голосов
/ 19 марта 2011

@ Паша, следующий код является SQL-запросом, а не HQL-запросом.

String query = "FROM registration WHERE user_id = 8";
Query query2 = session.createQuery(query);

Если вам нужно выполнить SQL-запрос, используйте вместо этого:

String query = "FROM registration WHERE user_id = 8";
Query query2 = session.createSQLQuery(query); 
query2.executeUpdate();

Чтобы преобразовать SQL-запрос в HQL-запрос, при условии, что в классе регистрации есть поле userId :

String query = "FROM registration WHERE userId = 8";
Query query2 = session.createQuery(query); 
query2.executeUpdate();

Полный пример см. В следующем руководстве: http://krams915.blogspot.com/2011/03/spring-hibernate-one-to-many.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...