今天写DAO,用了hibernate,在用load和get时,一运行就报无法根据id获得行。而id是很肯定存在的,但是一查数据库,发现数据居然莫名其妙的没了。
后来,查到hibernate.cfg.xml中有一行:
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>
这个的意思就是说在开始运行时,就重新创建表结构。
那么当然表会在每次运行时被重建,数据当然也就丢失了。
解决的方法很简单,就是把这行注释掉就可以了。
<!-- Drop and re-create the database schema on startup -->
<!--<property name="hbm2ddl.auto">create</property>-->