[英]exception in using annotation in hibernate
伙計們,我是休眠的新手..我試圖在休眠中使用注釋,但這給了我一個例外..這是我的代碼..任何建議..在此先感謝
在hibernate.cfg.xml中
<?xml version='1.0' encoding='utf-8'?>
<hibernate-configuration>
<session-factory>
<!-- Related to the connection START -->
<property name="connection.driver_class">com.mysql.jdbc.Driver </property>
<property name="connection.url">jdbc:mysql://localhost:3306/mydb </property>
<property name="connection.user">root </property>
<property name="connection.password">root</property>
<!-- Related to the connection END -->
<!-- Related to hibernate properties START -->
<property name="show_sql">true</property>
<property name="dialet">org.hibernate.dialet.MYSQLDialet</property>
<property name="hbm2ddl.auto">create</property>
<!-- Related to hibernate properties END-->
<!-- Related to mapping START-->
<mapping resource="user.hbm.xml" />
<!-- Related to the mapping END -->
</session-factory>
</hibernate-configuration>
DataProvider.java
import javax.persistence.*;
@Entity
@Table(name="dataprovider")
public class DataProvider {
@Id @GeneratedValue
@Column(name="id")
private int user_id;
@Column(name="name")
private String user_name;
@Column(name="description")
private String user_desc;
public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_desc() {
return user_desc;
}
public void setUser_desc(String user_desc) {
this.user_desc = user_desc;
}
}
在InsertData.java中
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
public class InsertData {
private static SessionFactory factory;
public static void main(String[] args) {
factory = new AnnotationConfiguration().configure("hibernate.cfg.xml").addAnnotatedClass(DataProvider.class)
.buildSessionFactory();
new InsertData().insertInfo();
}
public void insertInfo() {
Session session = factory.openSession();
DataProvider provider = new DataProvider();
provider.setUser_id(121);
provider.setUser_name("name");
provider.setUser_desc("desc");
Transaction tr = session.beginTransaction();
session.save(provider);
System.out.println("Object Saved");
tr.commit();
session.close();
factory.close();
}
}
例外
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.hibernate.cfg.annotations.Version.<clinit>(Version.java:12)
at org.hibernate.cfg.AnnotationConfiguration.<clinit>(AnnotationConfiguration.java:78)
at InsertData.main(InsertData.java:11)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
Hibernate所需的所有依賴項都不會加載,如果使用maven,則所有引用的jar都會自動加載到Application類路徑中。
正如您的錯誤明確指出的那樣,您缺少對sl4j jar的引用。
異常非常清楚:Hibernate需要org.slf4j.LoggerFactory
類,但找不到它。 您需要將相應的庫添加到類路徑,即,除了hibernate.jar之外,還需要一個slf4j.jar。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.