论坛首页 Java企业应用论坛

hibernate 与 spring 松散配置的问题

浏览 4217 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-11-23  

因为有朋友的回复,所有重做了一个SSH的例子,实现S/S/H松散耦合:
将spring配置文件applicationContext.xml改为下面的样子:

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3.   
  4. <beans>  
  5.   
  6.   
  7.     <bean id="sessionFactoryId"  
  8.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  9.         <property name="configLocation">  
  10.             <value>/WEB-INF/hibernate.cfg.xml</value>  
  11.         </property>  
  12.     </bean>  
  13.        
  14.     <bean name="/add" class="com.yourcompany.struts.action.AddAction"  
  15.         singleton="false">  
  16.         <property name="dao">  
  17.             <ref bean="UsersDAO" />  
  18.         </property>  
  19.     </bean>  
  20.   
  21.   
  22.     <bean id="UsersDAO" class="com.ssh.dao.impl.UsersDAO">  
  23.         <property name="sessionFactory">  
  24.             <ref bean="sessionFactoryId" />  
  25.         </property>  
  26.     </bean>  
  27. </beans>  

主要是让spring 引用hibernate的配置.
下面是我的hiberante配置文件的内容.

xml 代码
  1. <?xml version='1.0' encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC   
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"   
  4.           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5.   
  6. <!-- Generated by MyEclipse Hibernate Tools.                   -->  
  7. <hibernate-configuration>  
  8.   
  9.     <session-factory>  
  10.         <property name="connection.username">root</property>  
  11.         <property name="connection.url">  
  12.             jdbc:mysql://localhost:3306/test   
  13.         </property>  
  14.         <property name="dialect">  
  15.             org.hibernate.dialect.MySQLDialect   
  16.         </property>  
  17.         <property name="myeclipse.connection.profile">  
  18.             mysqltest   
  19.         </property>  
  20.         <property name="connection.driver_class">  
  21.             com.mysql.jdbc.Driver   
  22.         </property>  
  23.         <!---mapping resource="com/ssh/dao/impl/Users.hbm.xml" /-->  
  24.   
  25.   
  26.     </session-factory>  
  27.   
  28. </hibernate-configuration>  

 这样配置是没有问题的,但是不能加映射文件,就是上面被注释的部分,<!---mapping resource="com/ssh/dao/impl/Users.hbm.xml" /-->如果加上句,则会出错,Tomcat上不会报错,只是找不到action!

大家说说,这种用 spring引用hibernate的配置方法,映射应该在哪儿配置???

我用的MyEclipse 5.1.1 GA   Tomcat5.5.23

   发表时间:2007-11-27  
找不到Action不是mapping resource的原因吧
0 请登录后投票
   发表时间:2007-11-27  
不知道是不是配置文件放置的路径问题?我一般是把hibernate.cfg.xml放在class目录里,如下面的配置:

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

		<property name="configLocation">
			<value>classpath:hibernate.cfg.xml</value>
		</property>
	</bean>
0 请登录后投票
   发表时间:2007-11-28  
wubaodan  :你好,我也感觉配置mapping是否对和action应该没有关系,但是确实是加上mapping 后找不到action,主要是服务器也不报错,所以找不到一点突破口.

movingboy :你说的方法我也试了,不行啊,它提示的错误是: Unknown entity: com.ssh.dao.impl.Users; nested exception is org.hibernate.MappingException: Unknown entity: com.ssh.dao.impl.Users
我想这证明hibernate.cfg.xml找到了.
0 请登录后投票
   发表时间:2007-11-28  
可能是没有找到那个路径,试试classpath
0 请登录后投票
   发表时间:2007-11-28  
你在spring的配置文件中 sessionBean的配置中加上这么一段
<property name="mappingResources">
    <list>
      <value>xx.hbm.xml</value>
    </list>
</property>
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics