Попытка обновить Hibernate - кто-то может указать мне правильное направление? - PullRequest
0 голосов
/ 08 февраля 2012

Я пытался следовать примеру в документе http://docs.jboss.org/hibernate/orm/3.3 ... tch-direct

Но получаю следующую ошибку в моем журнале сервера:

SEVERE: org.hibernate.QueryException: запрос должен начинаться с SELECT или FROM: update [update hibernate.TbUser u set u.vcUserName =: userName, u.vcUserPsw =: userPsw, u.vcUserFirstName =: firstName, u.vcUserLastName =: lastName, u.vcUserMiddleName =: middleName, u.vcEmailAddress =: электронная почта, u.vcPhoneNumber =: phone, u.dtTerlinedDate =: termDate, u.dtHireDate =: hireDate, u.dtUpdTUIUU: upd: ui: upd: ui: upd: ui: upd: ui: upd: ui: upd: ui: upd: uI: upd=: userId где iUserId =: id]

Это говорит о том, что мне нужно начать запрос с SELECT или FROM, однако в примере используется запрос Update в запросе на обновление,поэтому я не понимаю, в чем проблема.

Может кто-нибудь показать мне пример того, как сделать Update ???Документация, видимо, нет.Спасибо.

Вот код, который я пытаюсь выполнить:

public int updateUser( String userName, String passwd, String firstName, String middleName, 
        String lastName, String email, String phone, Date termDate, Date hireDate, int id )
{
    int status = 0;
    try {
        org.hibernate.Transaction tx = session.beginTransaction();
        String cmd = "update TbUser u set u.vcUserName = :userName, "+
                "u.vcUserPsw = :userPsw, u.vcUserFirstName = :firstName, "+
                "u.vcUserLastName = :lastName, u.vcUserMiddleName = :middleName, "+
                "u.vcEmailAddress = :email, u.vcPhoneNumber = :phone, "+
                "u.dtTerminatedDate = :termDate, u.dtHireDate = :hireDate, "+
                "u.dtUpdTime = :updTime, u.iUpdUserId = :userId where iUserId = :id";
        Query q = session.createQuery( cmd );
        q.setString("userName", userName);
        q.setString("userPsw", passwd);
        q.setString("firstName", firstName);
        q.setString("middleName", middleName);
        q.setString("lastName", lastName);
        q.setString("email", email);
        q.setString("phone", phone);
        q.setDate("termDate", termDate);
        q.setDate("hireDate", hireDate);
        q.setDate("updTime", new Date());
        q.setInteger("id", id);
        status = q.executeUpdate();
        tx.commit();
    }
    catch( Exception e ) {
        e.printStackTrace();
        status = -1;
    }
    return status;
}

1 Ответ

0 голосов
/ 08 февраля 2012

Проверьте эту страницу здесь , похоже, вам нужно включить antlr * .jar в ваш путь к классам и использовать другой анализатор, org.hibernate.hql.ast.ASTQueryTranslatorFactory.

Попробуйте использовать эту библиотеку и посмотрите, как у вас получается.

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