http://dev2dev.bea.com.cn/bbsdoc/20060124187.html 我是根据这个文章学习的。
运行的时候出现这样的错误:org.hibernate.MappingNotFoundException: resource: Person.hbm.xml not found我发现Person.hbm.xml文件是产生在 E:\workspace\HibernateMySQL\bin\net\echochina\hibernatetest\dao 目录下;然后我把文件从copy到E:\workspace\HibernateMySQL\bin目录下,就正常了。请问这是什么原因呢?----------------------------------------------------------------------------------运行后数据库中生成了一条记录,但是还有一个小问题,就是控制台报错:log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
不知道这个问题又该如何解决?----------------------------------------------------------------------------------

解决方案 »

  1.   

    你在Person.hbm.xml里面的package字段肯定没写包名,这样默认就是从根目录下查找,而bin目录是java执行时类的根目录,所在就正确了。我的理解是这样,不知道对不对,希望能给你做个参考
      

  2.   

    就是控制台报错是由于你项目中没有引入log4j的jar包,以及项目中没有配置log4j的配置文件,这个对于你项目来说,没有任何影响。
    至于Person.hbm.xml文件是需要项目来识别它是个配置文件,你eclipse项目建立时候默认的是把编译后文件夹指向bin下的,你放到那里面去,那项目就能识别出来了
      

  3.   

    我如果想把Person.hbm.xml文件放到E:\workspace\HibernateMySQL\bin\net\echochina\hibernatetest\dao 目录下,又要让程序找得到,该如何处理呢?
      

  4.   

    没找到肯定是哪里路径或者包名没有写对,在hibernate的开发中这种问题经常遇到的,仔细一些就不会出现了
      

  5.   

    那就配置好配置文件的路径就好了,spring框架的话是如下配置: <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
            <property name="mappingDirectoryLocations">
                <list>
                   <value>classpath:config/hbm</value>
                </list>
            </property>
            <property name="dataSource">
                <ref local="dataSource"/>
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">net.sf.hibernate.dialect.OracleDialect</prop>
                    <prop key="hibernate.show_sql">true</prop>
                </props>
            </property>
        </bean>
      

  6.   

    那就配置好配置文件的路径就好了,spring框架的话是如下配置: <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
            <property name="mappingDirectoryLocations">
                <list>
                   <value>classpath:config/hbm</value>
                </list>
            </property>
            <property name="dataSource">
                <ref local="dataSource"/>
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">net.sf.hibernate.dialect.OracleDialect</prop>
                    <prop key="hibernate.show_sql">true</prop>
                </props>
            </property>
        </bean>
      

  7.   


    如果只是用了HIBERNATE,想达到这个目的,要修改heibernate的配置文件hibernate.cfg.xml,在里面有配置相应文件的地方
    比如<mapping resource="com/tds/hibernate/YljgInfo.hbm.xml" />
    <mapping resource="com/tds/hibernate/UserInfo.hbm.xml" />
    <mapping resource="com/tds/hibernate/BmInfo.hbm.xml" />
    这样的
      

  8.   

    log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). 
    log4j:WARN Please initialize the log4j system properly. 
    是因为你没有导入log4j包,还要写log4j的一个文件
    至于第一个问题,要在hibernate.cfg.xml中调整配置,将正确路径载入