Postgres-Fehler-Methode org.postgresql.jdbc.PgConnection.createClob() ist nicht implementiert
Wenn ich rufe createClob Methode unter Verwendung von connection-Objekt, wie unten gezeigt
Clob clob = con.createClob();
Folgende exception geworfen wird.
Caused by: java.sql.SQLFeatureNotSupportedException: Method org.postgresql.jdbc.PgConnection.createClob() is not yet implemented.
at org.postgresql.Driver.notImplemented(Driver.java:659)
at org.postgresql.jdbc.PgConnection.createClob(PgConnection.java:1246)
at org.apache.commons.dbcp2.DelegatingConnection.createClob(DelegatingConnection.java:868)
at org.apache.commons.dbcp2.DelegatingConnection.createClob(DelegatingConnection.java:868)
Ich bin mit der Datenbank PostgreSQL 9.6.2 mit JDK8 und mit commons-dbcp2 connection pool, Und fügte folgenden Postgres-Abhängigkeit in pom.xml
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.1.1</version>
</dependency>
In der Klasse org.postgresql.jdbc.PgConnection
, createClob Umsetzung ist, wie unten gezeigt, die das werfen der Ausnahme.
@Override
public Clob createClob() throws SQLException {
checkClosed();
throw org.postgresql.Driver.notImplemented(this.getClass(), "createClob()");
}
Was ist die Lösung oder Problemumgehung für dieses Problem? Oder Wie können wir CLOB-Daten in Postgres Abfragen?
InformationsquelleAutor Nirav Patel | 2017-05-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
TL;DR
Set
hibernate.jdbc.lob.non_contextual_creation=true
in Ihrempersistence.xml
Es ist ein bekannter Fehler in der JBoss-community.
Scheint dieser Fehler in früheren Versionen und die neue version mit Spring-Boot-2.0.0.RC1 als gut und höher.
Lösung:
hibernate.jdbc.lob.non_contextual_creation=true
in Ihrem persistence.xmlDie Lösung ist, fügen Sie diese Zeile in deine property-Datei (oder etwas ähnliches, wenn Ihr nicht mit Feder)
So, in Ihrer Anwendung ist.yml sollte sieht wie folgt aus:
Referenz:
https://o7planning.org/en/11661/spring-boot-jpa-and-spring-transaction-tutorial
hibernate mit c3p0: createClob() noch nicht implementiert ist
org.hibernate.cfg.AvailableSettings#NON_CONTEXTUAL_LOB_CREATION
als Schlüssel zu Ihrem JpaPropertyMap und"true"
als Wert.Sie können
non_contextual_creation
imapplication.yml
zu (nicht nur inpersistence.xml
):spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
InformationsquelleAutor KeyMaker00
PostgreSQL nicht wirklich "CLOB". Verwenden Sie einfach
setString(String)
odersetObject(...)
mitTypes.STRING
.InformationsquelleAutor Craig Ringer