我用三个框架做程序的时候,用的数据库是mysql,共三张表,并有主外键/* 
  spring的映射文件*/<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/bbs"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>

                               <prop key="hibernate.hbm2ddl.auto">create</prop>  
</props>
</property>
<property name="mappingResources">
<list>
<value>com/bbs/entity/Bbsuser.hbm.xml</value>
<value>com/bbs/entity/Bbsreply.hbm.xml</value>
<value>com/bbs/entity/Bbstopic.hbm.xml</value>
</list>
</property>
</bean>
</beans>
我配置了<prop key="hibernate.hbm2ddl.auto">create</prop>让程序在运行的时候动态的生成数据表,现在有几个疑问
1、如果我数据库中本身有这三张表,它每次都会先删除我原有的表,再创建表的结构。那么我的数据就丢失了。能不能让在有表的情况下不创建,如果没有表就自动创建表结构
2、我三张表中都有主外键,通过<prop key="hibernate.hbm2ddl.auto">create</prop>根据映射文件生成的数据表能保留保留主外键,但自动增长例丢失了,也就是生成的表中没有了auto_increment声明。并且其他的一些约束也丢失了。
3、我的表中一个字段,我定义如下:`ttime` timestamp NOT NULL default CURRENT_TIMESTAMP, 设置ttime为timestamp类型,并默认为当前的系统时间,但是,我通过
<prop key="hibernate.hbm2ddl.auto">create</prop>生成表后,它却将表中的数据类型改为`ttime` datetime default NULL数据类型与以前定义的不同了。
请问,这些问题有解决方案吗?