2017-01-03 2 views
2

Я получаю исключение, когда пытаюсь обновить последнюю версию Hiberate. Он работает гладко в 5.0.2. Final.Получение исключения при обновлении Hiberate 5.0.2.Final до 5.2.6.Final

Это моя конфигурация Maven

<java.version>1.8</java.version> 
<servlet.api>3.1.0</servlet.api> 
<servlet.jsp>2.2</servlet.jsp> 
<hibernate.version>5.0.2.Final</hibernate.version> 
<oracle.ojdbc6>11.2.0.2.0</oracle.ojdbc6> 
<spring.version>4.2.6.RELEASE</spring.version> 
<spring.security.version>4.2.1.RELEASE</spring.security.version> 
<spring.data.version>1.9.4.RELEASE</spring.data.version> 
<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> 
<thymeleaf.security.version>3.0.0.RELEASE</thymeleaf.security.version> 
<jackson.version>2.8.4</jackson.version> 

Исключение

03-Jan-2017 11:51:34.421 WARN [localhost-startStop-1] org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl.handleException GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statement 
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL via JDBC Statement 
    at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) 
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:524) 
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:470) 
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.createTable(AbstractSchemaMigrator.java:273) 
    at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:71) 
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:203) 
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:110) 
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183) 
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) 
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:309) 
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:445) 
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889) 
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60) 
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343) 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:829) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) 
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4810) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:939) 
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1812) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing object 

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440) 
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) 
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837) 
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445) 
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191) 
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523) 
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:193) 
    at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:999) 
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1315) 
    at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1890) 
    at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1855) 
    at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:304) 
    at org.apache.tomcat.dbcp.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:290) 
    at org.apache.tomcat.dbcp.dbcp2.DelegatingStatement.execute(DelegatingStatement.java:290) 
    at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) 
    ... 41 more 
+0

Если возможно: использовать пустую базу данных (без сухотки, индексы, контрсил, триггера, ...) и попробовать еще раз. – Ralph

+0

не помогло, выбрасывает такое же исключение – gviswanathan

+0

Если такое же исключение происходит даже с пустой базой данных, то что-то должно быть не так с отображением или какой-либо другой статистической ошибкой. Я бы дал Hibernate указание создать сценарий ddl (вместо его выполнения), а затем я бы проверил скрипт или выполнил его по строкам с помощью SQL Tool. http://stackoverflow.com/questions/27314165/generate-ddl-script-at-maven-build-with-hibernate4-jpa-2-1 – Ralph

ответ

0

Настройка по умолчанию схема может решить вашу проблему.

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan" value="ir.asta.training.contacts.entities" /> 
    <property name="jpaVendorAdapter"> 
    <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> 
    </property> 
    <property name="jpaProperties"> 
    <props> 
     <prop key="hibernate.hbm2ddl.auto">update</prop> 
     <prop key="hibernate.default_schema">your_oracle_user</prop> 
    </props> 
    </property>