本帖最后由 yuyanqiao 于 2011-12-26 10:47:31 编辑

解决方案 »

  1.   

    hibernate.cfg.xml配置如下
    <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
      

  2.   

    Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    你的common-loggin.jar包加进去了?
      

  3.   

    g4j-1.2.16.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar倒入这3个包
      

  4.   

    log4j-1.2.16.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar倒入这3个包
      

  5.   

    Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    这个不是很明白了吗?缺少slf4j,导入即可···
      

  6.   

    刚开始没有引进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
      

  7.   

    上面几位说的几个包,包括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
      

  8.   

    是啊,可是把log4j的版本升级到log4j-1.2.12.jar,它报的还是一样的错误,纠结死了都
      

  9.   

    Teacher配置不变,把Course的ManyToMany改为如下,我的多对多都是这样配置的:package bean;import java.util.*;
    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;
        }
        
    }
      

  10.   

    不行啊,还是报相同的错误!
    想想teacour那张表示用复合主键而我却没有进行相应的配置,待会弄弄看能否解决不
      

  11.   

    把 jar 包导入就好了啊 ~~
      

  12.   

    Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.query.sql.NativeSQLQueryReturn换个Hibernate3的版本试试,例如3.3.2
      

  13.   

    大家有没有好用的hibernate引用的jar包组合呀
      

  14.   

    log4j-1.2.12.jar换成log4j-1.2.16.jar 然后再查看是否有slf4j-api-1.6.4.jar包没有就添加进去