</session-factory> 修改的HibernateSessionFactory配置 private static Configuration configuration = new AnnotationConfiguration(); 报错: 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 bean.test.main(test.java:12) Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 3 more
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 你的common-loggin.jar包加进去了?
刚开始没有引进commons-loggin.jar包,不过引进后还是报相同的错误。引进sl4fj-api-1.5.8.jar包和sl4fj-log4j12-1.5.8.jar包后,报错 SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version). log4j:WARN Please initialize the log4j system properly. Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/engine/query/sql/NativeSQLQueryReturn at org.hibernate.cfg.annotations.QueryBinder.bindSqlResultsetMapping(QueryBinder.java:294) at org.hibernate.cfg.AnnotationBinder.bindQueries(AnnotationBinder.java:266) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:438) at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1168) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867) at bean.test.main(test.java:13) Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.query.sql.NativeSQLQueryReturn at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 8 more
上面几位说的几个包,包括log4j-1.2.16.jar, slf4j-api-1.6.1.jar, slf4j-log4j12-1.6.1.jar,commons-loggin.jar还有ejb3-persistence.jar,hibernate-annotations.jar,hibernate-commons-annotations.jar,mysql-connector-java-5.0.8-bin-g.jar,可是还是报同样的错误 SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version). log4j:WARN Please initialize the log4j system properly. Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/engine/query/sql/NativeSQLQueryReturn at org.hibernate.cfg.annotations.QueryBinder.bindSqlResultsetMapping(QueryBinder.java:294) at org.hibernate.cfg.AnnotationBinder.bindQueries(AnnotationBinder.java:266) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:438) at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1168) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867) at bean.test.main(test.java:13) Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.query.sql.NativeSQLQueryReturn at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 8 more
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/gradesys</property>
<property name="connection.username">root</property>
<property name="connection.password">ncistjk1973</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="current_session_context_class">thread</property>
<mapping class="bean.Teacher"/>
<mapping class="bean.Course"/>
</session-factory>
修改的HibernateSessionFactory配置
private static Configuration configuration = new AnnotationConfiguration();
报错:
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 bean.test.main(test.java:12)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 3 more
你的common-loggin.jar包加进去了?
这个不是很明白了吗?缺少slf4j,导入即可···
SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/engine/query/sql/NativeSQLQueryReturn
at org.hibernate.cfg.annotations.QueryBinder.bindSqlResultsetMapping(QueryBinder.java:294)
at org.hibernate.cfg.AnnotationBinder.bindQueries(AnnotationBinder.java:266)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:438)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1168)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
at bean.test.main(test.java:13)
Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.query.sql.NativeSQLQueryReturn
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 8 more
SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/engine/query/sql/NativeSQLQueryReturn
at org.hibernate.cfg.annotations.QueryBinder.bindSqlResultsetMapping(QueryBinder.java:294)
at org.hibernate.cfg.AnnotationBinder.bindQueries(AnnotationBinder.java:266)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:438)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1168)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
at bean.test.main(test.java:13)
Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.query.sql.NativeSQLQueryReturn
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 8 more
import javax.persistence.*;@Entity
@Table(name="course")
public class Course {
@Id
@TableGenerator(name="course",allocationSize = 1)
@GeneratedValue(strategy = GenerationType.TABLE,generator="course")
private String cno;
@Column(name="cname")
private String name;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "courses",targetEntity = Teacher.class)
private Set<Teacher> teachers = new HashSet<Teacher>(); public String getCno() {
return cno;
} public void setCno(String cno) {
this.cno = cno;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
public void setTeachers(Set<Teacher> teachers) {
this.teachers = teachers;
}
public Set getTeachers(){
return this.teachers;
}
public Course() { } public Course(String cno, String name) {
this.cno = cno;
this.name = name;
}
}
想想teacour那张表示用复合主键而我却没有进行相应的配置,待会弄弄看能否解决不