hibernate配置的一个小问题 我的hibernate的配置文件中hbm2ddl.auto设置成了updata后,第一次运行时,当它发现数据库中没有所需要的表时,它不会自动创建那张表吗?把改成create后每次运行后表中之前的数据就会被删除了。请问怎么解决这个问题呢?当第一次运行发现所需要的表没有时,怎么让它给我自动创建? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用一次create,然后再换回update update:第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库)validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。 我建好了数据库,只是没建表,可用updata时还是报异常,说找不到表,就是说它没有根据model类自动建立表,请问是什么原因呀? 第一次用create的话,会不会把其它已经存在的表给重新创建了下呢?那样的话其它之前存在的表里面的数据不就会没有了吗? 用create,在你数据库没表的时候会帮你自动生成 如果有表的话,貌似会更新你表里的数据. 第一次使用update,hibernate会帮你自动生成的,以后只会更新,不会重新创建新个,以下是DDL语句,楼主请看:第一次测试:23:09:54,781 INFO SchemaUpdate:161 - updating schema23:09:54,796 INFO DatabaseMetadata:119 - table not found: hibernate123:09:54,812 INFO DatabaseMetadata:119 - table not found: hibernate123:09:54,812 DEBUG SchemaUpdate:172 - create table hibernate1 (id number(10,0) not null, name varchar2(255 char) not null, primary key (id, name))23:09:54,906 INFO SchemaUpdate:183 - schema update completeHibernate: insert into hibernate1 (id, name) values (?, ?)第二次测试:23:12:07,359 INFO SchemaUpdate:161 - updating schema23:12:07,437 INFO TableMetadata:62 - table found: AP.HIBERNATE123:12:07,453 INFO TableMetadata:63 - columns: [id, name]23:12:07,453 INFO TableMetadata:65 - foreign keys: []23:12:07,453 INFO TableMetadata:66 - indexes: [sys_c006813]23:12:07,453 INFO SchemaUpdate:183 - schema update completeHibernate: insert into hibernate1 (id, name) values (?, ?)明显第一次调用生成了create语句,但是第二次已经找到了该个,所以只会做更新操作 你这个是用JUnit测试写的吗?怎么我第一次用update时它并不给我创建表,而是出现错误说表没有呀? JSP中使用JS输出提示问题 java通过jacob创建word文档中遇到的问题 ibatis修改SQL重启tomcat 用jsp生成图形验证码的问题,报java.lang.NullPointerException错误 myeclipse的tomcat问题 菜鸟学习juint,救助!! 问题很麻烦.后果很严重 EJB组件是不是真正意义上的中间件? 通过jdbc连接mysql的怪事~~~ wml强人入!!!!(中文问题) 怎么解决包冲突的问题啊? SSH启动报错【急】
validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
如果有表的话,貌似会更新你表里的数据.
第一次测试:
23:09:54,781 INFO SchemaUpdate:161 - updating schema
23:09:54,796 INFO DatabaseMetadata:119 - table not found: hibernate1
23:09:54,812 INFO DatabaseMetadata:119 - table not found: hibernate1
23:09:54,812 DEBUG SchemaUpdate:172 - create table hibernate1 (id number(10,0) not null, name varchar2(255 char) not null, primary key (id, name))
23:09:54,906 INFO SchemaUpdate:183 - schema update complete
Hibernate: insert into hibernate1 (id, name) values (?, ?)
第二次测试:
23:12:07,359 INFO SchemaUpdate:161 - updating schema
23:12:07,437 INFO TableMetadata:62 - table found: AP.HIBERNATE1
23:12:07,453 INFO TableMetadata:63 - columns: [id, name]
23:12:07,453 INFO TableMetadata:65 - foreign keys: []
23:12:07,453 INFO TableMetadata:66 - indexes: [sys_c006813]
23:12:07,453 INFO SchemaUpdate:183 - schema update complete
Hibernate: insert into hibernate1 (id, name) values (?, ?)
明显第一次调用生成了create语句,但是第二次已经找到了该个,所以只会做更新操作