SQLStateConverter.handledNonSpecificException hibernate - PullRequest
4 голосов
/ 02 февраля 2012

У меня есть следующая сущность в Hibernate:

@Entity
public class Contact implements Serializable {
    private static final long serialVersionUID = 1L;
      @Temporal(TemporalType.DATE)
    private Date birthday;
}

Когда я вызываю этот метод гибернации:

public Object get(Class entityClass, Serializable id) throws HibernateException {
    return get( entityClass.getName(), id );
}

Я получаю следующее исключение:

org.hibernate.exception.GenericJDBCException: could not load an entity: [com.mycompany.model.Contact#3]
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
}

Я попробовал этот простой код:

Statement st = conn.createStatement();
ResultSet res = st.executeQuery("select registration_date from contact where contact_id=3");
Date i = res.getDate(1);

И это прекрасно работает.

В чем проблема?

Тип Date в обоих случаях java.util.Date.

EDITED

Я отладил больше и увидел, что исключение:

Bad format for DATE '517' in column 2.

Дата там: 1985-05-17

Ответы [ 2 ]

4 голосов
/ 05 февраля 2012

Очень очень глупая проблема.

Имя поля в Hibernate было birthday, в то время как в БД я был registration_date.

birthday в БД было целым полем.

1 голос
/ 10 февраля 2012

вы можете использовать нотацию, приходящую вместе с Hibernate-реализацией JPA

@Column(name="registration_date")
private Date birthday;

Таким образом, вам не нужно менять имя столбца БД.

Приветствия

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