java - SQLStateConverter.handledNonSpecificException hibernate

标签 java mysql sql hibernate

我在 Hibernate 中有以下实体:

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

当我调用hibernate的这个方法时:

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

已编辑

调试多了,看到异常是:

Bad format for DATE '517' in column 2.

那里的日期是:1985-05-17

最佳答案

非常非常愚蠢的问题。

Hibernate 中的字段名称是 birthday 而在数据库中我是 registration_date

数据库中的

birthday 是一个 int 字段..

关于java - SQLStateConverter.handledNonSpecificException hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9115625/

相关文章:

jquery - 如何优化将大量元素动态添加到网页中

mysql - SQL从数据库中拉取随机图像

java - 使用 Hibernate 配置 Spring。创建名称为 'usersDao' : Unsatisfied dependency expressed through field 'sessionFactory' 的 bean 时出错

java - 在 Android 上的 Scala 代码中改造 HTTP 报告 "HTTP method annotation is required"

java - 找不到与给定名称 'Theme.AppCompat.Light' 匹配的资源。安卓工作室

java - 如何将 byte[] 转换为日期

mysql - 为什么我们不使用完整的 32 位来存储自纪元以来的 136 年呢?

java - Angularjs调用java函数

mysql - 使用 AND 从 term_taxnomy 表中选择

MySQL:选择 if `field` = TRUE 否则获取最后一行