同时将 spring data 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 & AbstractJdbc42语句。由于 postgresql-9.4-1206-jdbc42.jar:9.4 支持 JDBC 4.2,我假设调用错误的类会导致此异常。
最佳答案
Spring data jpa starter 1.4.1.RELEASE 使用 hibernate 5.0.11。 将 hibernate.version 属性覆盖到最新版本修复了问题。
关于spring - PSQLException - spring boot 1.4.1 - spring data jpa - offsetdatetime/localdatetime 标识为字节流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255521/