Issue
I have java project (version 8)
I upgraded my hibernate version from 5.0.3.Final to 5.6.9.Final
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.6.9.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.6.9.Final</version>
</dependency>
I tried to run my tomcat (version 10.0.20) after upgrading the hibernate version and I received the next error:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [spring/db-config.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity (wrong name: jakarta/persistence/Entity)
The sessionFactory bean looks like that:
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"
depends-on="flyway">
<property name="dataSource" ref="itpDataSource"/>
<property name="packagesToScan" value="com.imperva.itp.domain,com.imperva.itp.commons.domain"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgresPlusDialect</prop>
<prop key="configurationClass">org.hibernate.cfg.Configuration</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.id.new_generator_mappings">true</prop>
<prop key="hibernate.default_schema">${itp.db.username}</prop>
</props>
</property>
</bean>
I don't know if it is relevant but my Spring version is 4.3.30.RELEASE
after running different combinations:
hibernate 5.0.3.Final with tomcat 8: works properly
hibernate 5.0.3.Final with tomcat 10: works properly
hibernate 5.6.9.Final with tomcat 8: works properly
hibernate 5.6.9.Final with tomcat 10: doesn't work and the exception is thrown
any ideas?
Solution
in the end I upgraded the spring to 5.3.20 and spring web to 5.7.1 and I changed all the references of javax.persistence to jakarta.persistence and it worked. I kept the hibernate version 5.6.9.Final and tomcat 10
Answered By - Tal Levi
Answer Checked By - Dawn Plyler (JavaFixing Volunteer)