Я получаю сообщение об ошибке при запуске этого кода в Eclipse. Я создал файл Student.java:
public class Student {
private int id;
private String name;
private String email;
private int marks;
// getters/setters
}
Я создал файл Student.hbm.xml:
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name = "bean.Student" table = "student">
<id name = "id" column = "sid"></id>
<property name = "name" column = "sname"></property>
<property name = "email" column = "semail"></property>
<property name = "marks" column = "smarks"></property>
</class>
</hibernate-mapping>
Я создал файл 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>
<property name = "connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name = "connection.url">jdbc:oracle:thin:@localhost:1521:wind</property>
<property name = "connection.username">localuser</property>
<property name = "connection.password">localuser</property>
<property name = "connection.poolsize">5</property>
<property name = "dialect">org.hibernate.dialect.OracleDialect</property>
<mapping resource = "resources/student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Я создал файл client.java:
package testclass;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import bean.Student;
public class Client {
public static void main(String[] args) {
Student st = new Student();
st.setId(11);
st.setEmail("[email protected]");
st.setMarks(98);
st.setName("Swapnil");
// Student object is transient here..
// When it is attached to hibernate object then it will become persistent object.
Configuration cfg = new Configuration();
cfg.configure("resources/hibernate.cfg.xml");
SessionFactory sf = cfg.buildSessionFactory();
Session s =sf.openSession();
s.save(st);
// Student object is persisten now. Even gc() will not take away this object
s.beginTransaction().commit();
// Student object will goto Database side.
s.evict(st);
}
}
Я попытался добавить много файлов jar, но не вижу записи о студентах в моей базе данных Oracle.
Полная ошибка:
Jul 17, 2018 8:11:09 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.3.2.Final}
Jul 17, 2018 8:11:09 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Exception in thread "main" java.lang.NoClassDefFoundError: net/bytebuddy/NamingStrategy$SuffixingRandom$BaseNameResolver
at org.hibernate.cfg.Environment.buildBytecodeProvider(Environment.java:357)
at org.hibernate.cfg.Environment.buildBytecodeProvider(Environment.java:352)
at org.hibernate.cfg.Environment.<clinit>(Environment.java:246)
at org.hibernate.boot.registry.StandardServiceRegistryBuilder.<init>(StandardServiceRegistryBuilder.java:78)
at org.hibernate.boot.registry.StandardServiceRegistryBuilder.<init>(StandardServiceRegistryBuilder.java:67)
at org.hibernate.cfg.Configuration.reset(Configuration.java:158)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:124)
at org.hibernate.cfg.Configuration.<init>(Configuration.java:118)
at testclass.Client.main(Client.java:21)
Caused by: java.lang.ClassNotFoundException: net.bytebuddy.NamingStrategy$SuffixingRandom$BaseNameResolver
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 9 more




У меня такая же проблема: оказывается, файл библиотеки net-buddy был поврежден (ошибка при загрузке?).
Попробуйте удалить jar-файлы в ~ / .m2 / repository / net / bytebuddy и пересобрать приложение.
Надеюсь это поможет.
Просто добавьте файл jar: byte-buddy-1.X.XX.jar
Источник: https://github.com/raphw/byte-buddy
maven: https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy/1.9.7
Только сборка JAR binry: http://central.maven.org/maven2/net/bytebuddy/byte-buddy/1.9.7/byte-buddy-1.9.7.jar
Поместите jar-файлы гибернации в путь к классам. Скорее всего, это решит проблему.
В модульной системе Java это все еще появляется - Вам нужно в информации о модуле указать, что ваш модуль использует bytebuddy
requires net.bytebuddy;
что заставит вас поместить его в путь к классам :)
Зависимость bytebuddy используется Hibernate. У меня была аналогичная проблема, и я решил свою проблему, добавив следующую зависимость в свой pom.xml.
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-dep</artifactId>
<version>1.10.9</version>
</dependency>
Перейдите к этому ссылка на сайт, чтобы получить последнюю версию зависимости maven. Это решение должно работать для проектов на основе Spring Boot.
Попробуйте добавить byte-buddy-X.XX.XX.jar в путь к классам проекта. Если U работает в Eclipse, просто: щелкните правой кнопкой мыши имя проекта, затем выберите «Свойства» -> «Путь сборки Java» -> «Библиотеки» и добавьте в путь к классам этот файл.
Для меня было полезно удалить byte-buddy-X.XX.XX.jar из Modulepath, а затем добавить его в Classpath.
У меня была такая же проблема с этой библиотекой.
В пути сборки Java (свойства проекта) вы добавляли файлы jar в путь к модулю или путь к классам? Изначально я добавил jar-файлы в Modulepath. При отладке проблемы я решил переместить jar-файлы в Classpath. Это решило проблему.
Другой вариант - преобразовать проект в проект Maven.
Щелкните правой кнопкой мыши имя проекта в проводнике пакетов.
Прокрутите вниз до Настроить
Выберите преобразовать в проект Maven.
Примите все значения по умолчанию и нажмите Готово.
это только для декораций проекта MAVEN.