利用Eclipse开发Hibernate应用程序发现的问题

cqfirst 2008-03-11 01:06:44
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.
不知道这个问题又该如何解决?

----------------------------------------------------------------------------------
...全文
208 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dasenlin85711 2008-03-19
  • 打赏
  • 举报
回复
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中调整配置,将正确路径载入
fangtaohbjjxy 2008-03-17
  • 打赏
  • 举报
回复
没问题啦,是个警告,日志文件没配置。不会影响程序运行。楼上都说了,我不多说了。
lidi3503 2008-03-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cqfirst 的回复:]
我如果想把Person.hbm.xml文件放到E:\workspace\HibernateMySQL\bin\net\echochina\hibernatetest\dao 目录下,又要让程序找得到,该如何处理呢?
[/Quote]

如果只是用了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" />
这样的
yibunengjing 2008-03-14
  • 打赏
  • 举报
回复
那就配置好配置文件的路径就好了,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>
yibunengjing 2008-03-14
  • 打赏
  • 举报
回复
那就配置好配置文件的路径就好了,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>
cqfirst 2008-03-13
  • 打赏
  • 举报
回复
我如果想把Person.hbm.xml文件放到E:\workspace\HibernateMySQL\bin\net\echochina\hibernatetest\dao 目录下,又要让程序找得到,该如何处理呢?
dpf5212 2008-03-13
  • 打赏
  • 举报
回复
没找到肯定是哪里路径或者包名没有写对,在hibernate的开发中这种问题经常遇到的,仔细一些就不会出现了
yibunengjing 2008-03-11
  • 打赏
  • 举报
回复
就是控制台报错是由于你项目中没有引入log4j的jar包,以及项目中没有配置log4j的配置文件,这个对于你项目来说,没有任何影响。
至于Person.hbm.xml文件是需要项目来识别它是个配置文件,你eclipse项目建立时候默认的是把编译后文件夹指向bin下的,你放到那里面去,那项目就能识别出来了
snowdreams 2008-03-11
  • 打赏
  • 举报
回复
你在Person.hbm.xml里面的package字段肯定没写包名,这样默认就是从根目录下查找,而bin目录是java执行时类的根目录,所在就正确了。我的理解是这样,不知道对不对,希望能给你做个参考

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧