日期:2014-05-19  浏览次数:20759 次

hibernate自动删除以前的表
XML code

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory name="foo">
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:test</property>
        <property name="hibernate.connection.username">test</property>
        <property name="hibernate.connection.password">test</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name="hiernate.hbm2ddl.auto">validate</property>
        <property name="hibernate.show_sql">true</property>
        <mapping resource="com/asm/hibernate/domain/Student.hbm.xml"/>
        <mapping resource="com/asm/hibernate/domain/Teacher.hbm.xml"/> 
    </session-factory>
</hibernate-configuration>


这是我的hibernate.cfg.xml文件,不管我把hbm2ddl.auto配置成什么值,结果都会把以前建的表删除掉。我的java代表中并没有创建表的语句,请问这是为什么啊????
小弟刚学hibernate,请大侠们帮帮忙,只用到hibernate,没有struts spring.

------解决方案--------------------
<!-- 启动时删数据库中的表,然后创建,退出时不删除数据表
<property name="hbm2ddl.auto">create</property>-->
<!-- 启动时删数据库中的表,然后创建,退出时自动删除所有表
<property name="hbm2ddl.auto">create-drop</property>-->
<!-- 自动修改,如果表结构与实体类不一致,那么就更新表结构,数据会保留
(如果原表不存在,就创建新表;如果缺少相应的字段,就加入;对于原来存在的多余字段,不作处理)
<property name="hbm2ddl.auto">update</property>-->
<!-- 自动校验,如果表结构与实体类不一致,那么不做任何操作,报错
<property name="hbm2ddl.auto">validate</property>-->