Java 使用Hibernate时出现异常

Java 使用Hibernate时出现异常,java,spring,hibernate,exception,Java,Spring,Hibernate,Exception,请帮帮我 在表数据的插入列setCreateDate中被压碎。谁知道这个错误是什么,为什么不可能写一个timestamp DateTime对象 Caused by: org.postgresql.util.PSQLException: ERROR: invalid input syntax for integer: "2015-02-24 13:48:32.575000 +02:00:00" at org.postgresql.core.v3.QueryExecutorImpl.rece

请帮帮我

在表数据的插入列setCreateDate中被压碎。谁知道这个错误是什么,为什么不可能写一个timestamp DateTime对象

Caused by: org.postgresql.util.PSQLException: ERROR: invalid input syntax for integer: "2015-02-24 13:48:32.575000 +02:00:00"
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:334)
    at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
    at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
    at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:93)
    at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:56)
    ... 56 more
类Dao:

import com.tatem.persistance.dao.core.GenericDao;
import com.tatem.persistance.domain.core.DomainObject;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import java.io.Serializable;
import java.util.List;
public class GenericDaoHibernate<T extends DomainObject> implements GenericDao<T> {

private Class<T> type;
@Autowired
private HibernateTemplate hibernateTemplate;

@Autowired
private SessionFactory sessionFactory;

public GenericDaoHibernate(Class<T> type) {
    this.type = type;
}


@Override
public T get(Serializable id) {
    return hibernateTemplate.get(type, id);
}

@Override
public List<T> getAll() {
    return hibernateTemplate.loadAll(type);
}

@Override
public Serializable save(T object) {
    Serializable id = (Serializable) hibernateTemplate.save(object);
    hibernateTemplate.flush();
    return id;
}

@Override
public void saveBulk(List<T> objects){
    hibernateTemplate.saveOrUpdateAll(objects);
    hibernateTemplate.flush();
}

public HibernateTemplate getHibernateTemplate() {
    return hibernateTemplate;
}

@Override
public void merge(T object) {
    hibernateTemplate.merge(object);
    hibernateTemplate.flush();
}

@Override
public void update(T object){
    hibernateTemplate.update(object);
    hibernateTemplate.flush();
}

@Override
public void delete(T object) {
    hibernateTemplate.delete(object);
    hibernateTemplate.flush();
}

@Override
public void deleteAll(List<T> objects) {
    hibernateTemplate.deleteAll(objects);
    hibernateTemplate.flush();
}

@Override
public void bulkSaveOrUpdate(List<T> objects) {
    hibernateTemplate.saveOrUpdateAll(objects);
    hibernateTemplate.flush();
}
}
您可能缺少createDate映射上的@Temporal注释。应该是这样的

@Temporal(TemporalType.TIMESTAMP) 
private Date createDate;

此映射需要一个类型为timestamp的数据库列,它可以是date或任何类似的类型。

谢谢大家,正如@StanislavL所写的,创建的表列不为空默认值fn\u现在为\u bigint\u看起来像是要将日期保存到int列中。检查您的DB表,在时间戳中,您试图保存的列似乎不是正确的类型。不知道PistGress,但是时间戳与时区之间的时间戳和时间戳之间没有区别吗?谢谢您的响应,但是如果使用JavaUTLDATE日期,我考虑使用来自库Or.JoDay.Time.DATETMEM的DATETIME的日期。Joda的DateTime可以与@Typetype=org.Joda.time.contrib.hibernate.PersistentDateTime一起使用,但我在你编辑的帖子中看到你已经明白了这一点。
@Temporal(TemporalType.TIMESTAMP) 
private Date createDate;