关于Hibernate的映射和使用Spring后出现的问题,banq大哥说说你的见解啊

08-01-02 fejjsong
我自己写了一个Application小程序,用Hibernate映射比较简单的对象到数据库,配置文件里的hbm2ddl.auto参数配的是update,不用我手动建表,它自动就会建表,然后把对象

持久化。但是我再写一个web程序,它就报数据库里的某某表不存在,这是怎么回事呢?明明可以自动建表的啊!

还有我使用了Spring后,Hibernate的参数全部是再Spring的ApplicationContext.xml文件里面配置的,hbm2ddl.auto参数配的也是update,我使用了Spring的IOC和声明式事务

,结果还是不能自动建表,手动见表后就解决问题,难道使用Spring就不能自动建表吗?请高手们帮忙赐教!谢谢!!

我的Spring配置文件持久部分如下:

<beans>
  <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass">
      <value>org.gjt.mm.mysql.Driver</value>
    </property>
    <property name="jdbcUrl">
      <value>jdbc:mysql://localhost:3306/test</value>
    </property>
    <property name="user">
      <value>fejjsong</value>
    </property>
    <property name="password">
      <value>fejjsong</value>
    </property>
    <property name="maxPoolSize">
      <value>10</value>
    </property>
    <property name="minPoolSize">
      <value>5</value>
    </property>
  </bean>
  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
      <ref local="dataSource" />
	</property>
	<property name="mappingResources">
	  <list>
	    <value>com/fufu/vo/Good.hbm.xml</value>
	  </list>
	</property>
    <property name="hibernateProperties">
	  <props>
	    <prop key="show_sql">true</prop>
	    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
	    <prop key="hbm2ddl.auto">update</prop>
	  </props>
	</property>
<p>

[该贴被fejjsong于2008-01-02 11:38修改过]

[该贴被fejjsong于2008-01-02 11:40修改过]

[该贴被fejjsong于2008-01-02 12:50修改过]

fejjsong
2008-01-03 23:05
banq大哥怎么了啊?高手们啊,这个问题是不是也曾经困惑过你们??

banq
2008-01-04 17:03
spring是业务层框架,不是持久层框架,它不负责建立数据库,自动建立数据库是Hibernate事情,你现在不能建立了,那肯定Hibernate自动建库功能没有发挥作用,虽然你配置了update,那么是否还缺其它步骤,比如必须让Hibernate知道你的数据库在哪里,如果Hibernate不知道数据库在哪个IP地址,访问用户名和密码,怎么建立呢?

fejjsong
2008-01-04 19:01
是这样啊,那spring做的还真不完善,整合了Hibernate的东西却不能用尽功能。分开来试试。谢谢

猜你喜欢