0
votes

I am new to spring and hibernate, I am trying to connect with mysql database from my spring + hibernate application. but unfortunately I am getting below error. tried to fix this but not getting correct solution.

Spring - Hibernate version information

<properties>
    <spring.version>4.2.1.RELEASE</spring.version>
    <security.version>4.0.3.RELEASE</security.version>
    <jdk.version>1.8</jdk.version>
    <hibernate.version>4.3.5.Final</hibernate.version>
    <org.aspectj-version>1.7.4</org.aspectj-version>
</properties>

<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <beans:property name="url"
        value="jdbc:mysql://localhost:3306/springmvchibernate"/>
    <beans:property name="username" value="root" />
    <beans:property name="password" value="mysql12345" />
</beans:bean>

<!-- Hibernate 4 SessionFactory Bean definition -->
<beans:bean id="hibernate4AnnotatedSessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <beans:property name="dataSource" ref="dataSource" />
    <beans:property name="annotatedClasses">
        <beans:list>
            <beans:value>**</beans:value>
        </beans:list>
    </beans:property>
    <beans:property name="hibernateProperties">
        <beans:props>
            <beans:prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect
            </beans:prop>
            <beans:prop key="hibernate.show_sql">true</beans:prop>
        </beans:props>
    </beans:property>
</beans:bean>

<context:component-scan base-package="org.**" />

<tx:annotation-driven transaction-manager="transactionManager" />

<beans:bean id="transactionManager"
    class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <beans:property name="sessionFactory"
        ref="hibernate4AnnotatedSessionFactory" />
</beans:bean>

Message Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet.http.HttpServlet.service(HttpServlet.java:635) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Root Cause

org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:544) org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373) org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:427) org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:276) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:653) org.arpit.java2blog.service.CountryService$$EnhancerBySpringCGLIB$$77d6eaf4.getAllCountries() org.arpit.java2blog.controller.CountryController.getCountries(CountryController.java:26) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498)

1
Please add relevant code.Alien
which version of hibernate you are using in pom.xml?Alien
Hibernate version 4Ram Chowdary
I am using local maven repository and using {hinernate.version}, in my repository I could see hibernate 5, 4 both versions available. if I try to give manual version number in pom.xml throwing missing artifact - hibernate - core. jarRam Chowdary

1 Answers

1
votes

I got solution for this problem I have tried many options changed hibernate version, spring version tried every possible option to fix this. after hours of struggle finally I found that it is due to mySQL connector version changed from 5.1.** to 8.0.11. it is working fine. even though in official they mentioned below values, they are not working.

Connector/J version Driver Type JDBC version MySQL Server version Status 5.1 4 3.0, 4.0, 4.1, 4.2 5.5, 5.6*, 5.7*, 8.0* Recommended version 8.0 4 4.2 5.5, 5.6, 5.7, 8.0 Development Milestone