PSQLException - spring boot 1.4.1 - spring data jpa - offsetdatetime / localdatetime标识为Bytestream

时间:2016-10-26 06:50:54

标签: spring postgresql java-8 spring-data-jpa

将spring数据JPA与postgres集成在一起。 我有一个表示以下java对象的数据库表。

private class A {

@Column(name="createdTime", columnDefiniton="TIMESTAMP WITH TIMEZONE")
OffsetDateTime dateTime;
}

我正在尝试保存到此表,但是,我正在

Caused by: org.postgresql.util.PSQLException: ERROR: column "created_time" is of type timestamp with time zone but expression is of type bytea
  Hint: You will need to rewrite or cast the expression.
  Position: 131
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2182) ~[postgresql-9.4-1206-jdbc42.jar:9.4]
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1911) ~[postgresql-9.4-1206-jdbc42.jar:9.4]
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:173) ~[postgresql-9.4-1206-jdbc42.jar:9.4]
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:645) ~[postgresql-9.4-1206-jdbc42.jar:9.4]
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:495) ~[postgresql-9.4-1206-jdbc42.jar:9.4]
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:441) ~[postgresql-9.4-1206-jdbc42.jar:9.4]
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]

我注意到postgres jdbc jar有2个版本的AbstractJdbcStatement  &安培; AbstractJdbc42Statement。由于postgresql-9.4-1206-jdbc42.jar:9.4支持JDBC 4.2,我假设调用错误的类导致此异常。

1 个答案:

答案 0 :(得分:3)

Spring数据jpa starter 1.4.1.RELEASE使用hibernate 5.0.11。 将hibernate.version属性覆盖到最新版本修复了问题。