Spring-boot vs Postgres vs Cockroach -> 快速路径函数 lo_creat 未知
Spring-boot vs Postgres vs Cockroach -> The fastpath function lo_creat is unknown
在我的 Spring-boot 应用程序中将 Postgres 更改为 Cockroach 后,我开始遇到这个问题:
The fastpath function lo_creat is unknown.
然后登录:
org.postgresql.util.PSQLException: The fastpath function lo_creat is unknown.
at org.postgresql.fastpath.Fastpath.getID(Fastpath.java:297) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.fastpath.Fastpath.fastpath(Fastpath.java:146) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.fastpath.Fastpath.getInteger(Fastpath.java:158) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.fastpath.Fastpath.getOID(Fastpath.java:209) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:295) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:278) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.jdbc.PgPreparedStatement.setClob(PgPreparedStatement.java:1215) ~[postgresql-42.2.14.jar!/:42.2.14]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.setClob(HikariProxyPreparedStatement.java) ~[HikariCP-3.4.5.jar!/:na]
在 spring-boot 中是否有一个简单的解决方法?因为蟑螂好像没有。
好像跟hibernate和DB文本字段有关。
您相信 CockroachDB 与 PostgreSQL 兼容的说法。
但是它们的兼容性似乎没有扩展到大对象,所以你不应该调用 org.postgresql.largeobject.LargeObjectManager
。
Spring 引导应该让您配置 DB 方言。您可以尝试设置以下内容吗:
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.CockroachDB201Dialect
CockroachDB 方言应避免使用这些 LOB 函数。
在我的 Spring-boot 应用程序中将 Postgres 更改为 Cockroach 后,我开始遇到这个问题:
The fastpath function lo_creat is unknown.
然后登录:
org.postgresql.util.PSQLException: The fastpath function lo_creat is unknown.
at org.postgresql.fastpath.Fastpath.getID(Fastpath.java:297) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.fastpath.Fastpath.fastpath(Fastpath.java:146) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.fastpath.Fastpath.getInteger(Fastpath.java:158) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.fastpath.Fastpath.getOID(Fastpath.java:209) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:295) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.largeobject.LargeObjectManager.createLO(LargeObjectManager.java:278) ~[postgresql-42.2.14.jar!/:42.2.14]
at org.postgresql.jdbc.PgPreparedStatement.setClob(PgPreparedStatement.java:1215) ~[postgresql-42.2.14.jar!/:42.2.14]
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.setClob(HikariProxyPreparedStatement.java) ~[HikariCP-3.4.5.jar!/:na]
在 spring-boot 中是否有一个简单的解决方法?因为蟑螂好像没有。
好像跟hibernate和DB文本字段有关。
您相信 CockroachDB 与 PostgreSQL 兼容的说法。
但是它们的兼容性似乎没有扩展到大对象,所以你不应该调用 org.postgresql.largeobject.LargeObjectManager
。
Spring 引导应该让您配置 DB 方言。您可以尝试设置以下内容吗:
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.CockroachDB201Dialect
CockroachDB 方言应避免使用这些 LOB 函数。