I tried many different maven dependencies. I made my classes like in the instruction from https://www.tutorialspoint.com/hibernate/hibernate_annotations.htm Still error show up. I made my classic POJO class called Model
So this is my pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mha</groupId>
<artifactId>databasemodels</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>11</java.version>
<junit.version>4.12</junit.version>
</properties>
<dependencies>
<!-- test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.0.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-annotations -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<archive>
<manifest>
<mainClass>ManageModel</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>5.2.4</version>
<configuration>
<url>jdbc:h2:file:./dataBaseModels</url>
<user>sa</user>
</configuration>
</plugin>
</plugins>
</build>
</project>
This is class that generate errors:
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
import java.util.Iterator;
import java.util.List;
public class ManageModel {
private static SessionFactory factory;
public static void main(String[] args) {
try{
factory = new AnnotationConfiguration().configure().
addAnnotatedClass(Model.class).
buildSessionFactory();
}catch (Throwable exc){
System.err.println("Failed to create SessionFactory object " + exc);
throw new ExceptionInInitializerError(exc);
}
ManageModel MM = new ManageModel();
MM.modelList();
}
public void modelList(){
Session session = factory.openSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
List models = session.createQuery("FROM Model").list();
for(Iterator iterator = models.iterator(); iterator.hasNext();){
Model model = (Model) iterator.next();
System.out.print("Name: " + model.getName());
System.out.print(" Surname:" + model.getSurname());
System.out.print(" Height:" + model.getHeight());
System.out.print(" Url:" + model.getUrl());
}
tx.commit();
}catch (HibernateException he){
if(tx != null)
tx.rollback();
he.printStackTrace();
}finally {
session.close();
}
}
}
This is my hibernate.cfg.xml:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">org.h2.Driver</property>
<property name="connection.url">jdbc:h2:file:C:\Users\mhoja\Desktop\2020\MASTERCLASS\databasemodels\dataBaseModels</property>
<property name="connection.username">sa</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.H2Dialect</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">validate</property>
<mapping class= "Model"/>
</session-factory>
</hibernate-configuration>
And the error:
Failed to create SessionFactory object java.lang.NoClassDefFoundError: org/hibernate/cfg/Mappings
Exception in thread "main" java.lang.ExceptionInInitializerError
at ManageModel.main(ManageModel.java:21)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/cfg/Mappings
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at ManageModel.main(ManageModel.java:16)
Caused by: java.lang.ClassNotFoundException: org.hibernate.cfg.Mappings
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 10 more
Process finished with exit code 1
Choose a single version of hibernate. Your pom.xml is mixing artifacts from different versions.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.