विधि org.postgresql.jdbc.PgConnection.createClob () अभी तक लागू नहीं है


99

मैं इस त्रुटि को कैसे हल कर सकता हूं:

java.lang.reflect.InvocationTargetException: null
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_161]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_161]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161]
    at org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl.useContextualLobCreation(LobCreatorBuilderImpl.java:113) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl.makeLobCreatorBuilder(LobCreatorBuilderImpl.java:54) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentImpl.<init>(JdbcEnvironmentImpl.java:271) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:114) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:861) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:888) [hibernate-core-5.2.14.Final.jar:5.2.14.Final]
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57) [spring-orm-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) [spring-orm-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:388) [spring-orm-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377) [spring-orm-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) [spring-orm-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1769) [spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1706) [spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:583) [spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) [spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) [spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) [spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) [spring-beans-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1085) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:858) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
    at com.divergent.demo.DemoApplication.main(DemoApplication.java:12) ~[classes/:na]



Caused by: java.sql.SQLFeatureNotSupportedException: Method org.postgresql.jdbc.PgConnection.createClob() is not yet implemented.
    at org.postgresql.Driver.notImplemented(Driver.java:683) ~[postgresql-42.2.1.jar:42.2.1]
    at org.postgresql.jdbc.PgConnection.createClob(PgConnection.java:1252) ~[postgresql-42.2.1.jar:42.2.1]
    ... 44 common frames omitted


1
"c32p0 के साथ हाइबरनेट करें ..." स्प्रिंग बूट का उल्लेख नहीं करता है, हालांकि उत्तर देते हैं
Pafnucy

जवाबों:


199

अपने आवेदन में इस संपत्ति को जोड़ें।

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

संदर्भ:


स्प्रिंग बूट 2.1.6 के साथ काम नहीं किया। यह संभव है कि एक प्रतिगमन था ।
cstroe

2.1.9 के लिए काम किया।
उत्कर्ष गुप्ता

29

मेरा भी ऐसा ही मुद्दा था। मैंने इस समाधान का पालन किया और इसने मेरे लिए काम किया

http://vkuzel.blogspot.com/2016/03/spring-boot-jpa-hibernate-atomikos.html

# Disable feature detection by this undocumented parameter. Check the org.hibernate.engine.jdbc.internal.JdbcServiceImpl.configure method for more details.
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false

# Because detection is disabled you have to set correct dialect by hand.
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL9Dialect

इसने मेरे लिए काम किया। हालाँकि, मैंने spring.jpa.database=POSTGRESQLबोली के बजाय प्रयोग किया ।
cbmeeks

29

यह Hibernateतब का एक मुद्दा है जब आप निम्न ध्वज का उपयोग कर सकते हैं। अपने गुणों में निम्नलिखित विन्यास सेट करें:

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true

के लिए स्प्रिंग बूट 2.xx इस ध्वज बस अक्षम प्रासंगिक LOB निर्माण, लेकिन तुम सच में जानना ठीक से जवाब देने की जांच चाहते हैं, तो अद्यतन V1

अद्यतन V1

यह एक हाइबरनेट मुद्दा था । आप से वसंत बूट नवीनतम संस्करण का उपयोग कर रहे हैं 2.0.xजब तक 2.1.x शामिल हैं Hibernate 5.3.10.finalआप एक बार देख ले जा सकते हैं यहाँ लेकिन इस मुद्दे पर तय किया गया था Hibernate version 5.4.0.CR1 तो आप की जरूरत है कि निर्भरता को जोड़ने के लिए या अगर यह संभव है नवीनतम संस्करण:

ग्रेडेल के लिए:

compile('org.hibernate:hibernate-core:5.4.2.Final')

मावेन के लिए:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.2.Final</version>
</dependency>

अद्यतन किया गया V2 "स्पोटिंग बूथ 2.2.0.M (1-4)"

इसके अलावा Spring boot v2.2.0.Mxमें अब शामिल है Hibernate v5.4.xतो यह समस्या इन संस्करणों के लिए तय की गई थी।


1
कूल I ने इसके बारे में अधिक जानकारी जोड़ी और स्प्रिंग बूट के लिए संस्करणों का समर्थन अद्यतन किया। @ शेखफिरोज़अलम
जोनाथन जोक्स

स्प्रिंग बूट 2.2.1 में। अभी भी समस्या है। मुहम्मद हयाज़ी के जवाब ने काम किया। stackoverflow.com/a/54288767/4766882
डेनिस किम

13

के साथ hibernate.properties जोड़कर हल किया

hibernate.jdbc.lob.non_contextual_creation=true

अन्य समाधान के साथ application.propertiesकाम नहीं किया। यह XML hibernate.cfg.xml के माध्यम से भी किया जा सकता है

स्प्रिंग बूट संस्करण: 2.0.2


1
क्या आप वाकई वसंत से शुरुआत कर रहे हैं। यह मेरे लिए 2.0.3 में ठीक काम करता है
कल्पेश सोनी

@KalpeshSoni क्षमा करें, जवाब नहीं दे सकता। इसकी स्प्रिंग-बूट परियोजना एक अन्य परियोजना की व्यावसायिक निर्भरता के साथ है, जिसमें दृढ़ता सामान को परिभाषित किया गया है। यह पता लगाने के लिए इस सेटअप को पुन: पेश करना मुश्किल है।
पफनुसी



5

स्प्रिंग बूट संस्करण के साथ एक ही समस्या का सामना करना पड़ा: 2.1.x। कृपया भी। इसके साथ काम किया:

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true 

मैंने किया था, लेकिन यह काम नहीं कर रहा था। क्या कोई दूसरा रास्ता है?
एचबी

0

मैं एक दिन के लिए इस सामान के साथ संघर्ष कर रहा था।

  • स्प्रिंग बूट संस्करण 2.2.5

  • postgres: 42.2.10

  • सर्वर पर पोस्टग्रेज का संस्करण: PostgreSQL 11.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.9.3, 64-bit

मैं हाइबरनेट कॉन्फ़िगरेशन के साथ स्प्रिंग जेपीए डेटा का उपयोग कर रहा था। सेशन का उपयोग करना।

हाइबरनेट कॉन्फ़िगरेशन:

@Bean(name = "sessionFactory")
@Primary
public LocalSessionFactoryBean sessionFactory(){
    LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
    sessionFactoryBean.setDataSource(assetHealthDataSource);
    sessionFactoryBean.setMappingDirectoryLocations(new Resource[]{new ClassPathResource("mappings")});
    sessionFactoryBean.setHibernateProperties(hibernateProperties());

    return sessionFactoryBean;
}

हाइबरनेट गुण:

private final Properties hibernateProperties() {
    Properties hibernateProperties = new Properties();
    hibernateProperties.setProperty(
            "hibernate.dialect", "org.hibernate.dialect.PostgreSQL9Dialect");
    hibernateProperties.setProperty(
            "hibernate.jdbc.lob.non_contextual_creation", "true");
    hibernateProperties.setProperty(
            "hibernate.temp.use_jdbc_metadata_defaults", "false");
    hibernateProperties.setProperty(
            "hibernate.show_sql", environment.getProperty("assetHealthDataSource.hibernate.showSQL"));
    hibernateProperties.setProperty(
            "hibernate.format_sql", environment.getProperty("assetHealthDataSource.hibernate.formatSQL"));
    hibernateProperties.setProperty(
            "hibernate.transaction.auto_close_session", "false");
    hibernateProperties.setProperty(
            "hibernate.hibernate.connection.release_mode", "auto");
    hibernateProperties.setProperty(
            "hibernate.hikari.maximumPoolSize", "3");
    hibernateProperties.setProperty(
            "hibernate.default_schema", "MY_SCHEMA");

    return hibernateProperties;
}

लेकिन सब कुछ ठीक से काम नहीं कर रहा था। किसी भी सुझाव को देखना चाहते हैं जो इसे हल करने में मदद कर सके। आपका बहुत बहुत धन्यवाद।


ak, इसे हल किया गया था। मैं यह पुष्टि करना चाहूंगा कि स्प्रिंगबूट 2.2.5 और हाइबरनेट 4.2.14 फाइनल में यह समस्या नहीं होगी, मुझे त्रुटि मिली क्योंकि आवेदन में एक ओरेकल ड्राइवर है, शायद इसने संघर्ष का नेतृत्व किया। धन्यवाद।
एचबी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.