面对休眠错误:原因:java.lang.ClassNotFoundException:net.bytebuddy.NamingStrategy $ SuffixingRandom $ BaseNameResolver [英] Facing hibernate error: Caused by: java.lang.ClassNotFoundException: net.bytebuddy.NamingStrategy$SuffixingRandom$BaseNameResolver
问题描述
在Eclipse中运行此代码时出现错误。我创建了 Student.java
文件:
I am getting an error while running this code in Eclipse. I have created Student.java
file:
package bean;
public class Student {
private int id;
private String name;
private String email;
private int marks;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getMarks() {
return marks;
}
public void setMarks(int marks) {
this.marks = marks;
}
}
我创建了学生。 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("swapnilgthaware@gmail.com");
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数据库中看不到学生记录。
I tried adding many jars file but I am unable see student record in my oracle database.
完全错误:
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库文件已损坏(下载期间出错?)。
I have the same problem: turns out the net-buddy library file was corrupted (error during download?).
尝试删除〜/ .m2 / repository / net / bytebuddy中的jar并重建应用程序。
Try deleting jars in ~/.m2/repository/net/bytebuddy and rebuild the application.
希望这会有所帮助
这篇关于面对休眠错误:原因:java.lang.ClassNotFoundException:net.bytebuddy.NamingStrategy $ SuffixingRandom $ BaseNameResolver的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!