日期:2014-05-17  浏览次数:20737 次

关于hibernate的一个小问题,大家帮忙看一下
假设我现在有两个类,Student和Teacher,数据库中也有对应的表。

配置文件中 hbm2ddl.auto 设置为create.

我现在对Student类进行测试,在日志中会看到将以前的student表和teacher表都重新建立了一遍,查看数据库会发现teacher表变成空的了。

可是我只对Student进行测试啊,这其实没涉及到teacher,请问这是怎么回事啊?

------解决方案--------------------
因为这些操作都是配置在配置文件中的,所以你测试student的时候就把配置文件执行了嘞(或者Student类和Teacher类有关联呢),不想被清空就把create改成update吧!
------解决方案--------------------
你都写出来了, 配置文件hbm2ddl.auto设置为create,
也就是你每次启动检测配置文件的时候,它会帮你把表删了,重新create。
改update就没问题了
------解决方案--------------------
hibernate.hbm2ddl.auto:在 SessionFactory 创建时,自动检查数据库
结构,或者将数据库 schema 的 DDL 导出
到数据库。使用 create-drop 时,在显式关闭
SessionFactory 时,将删除掉数据库 schema。
例如:validate | update | create | createdrop,将create修改为update就可以解决你的问题了
------解决方案--------------------
配置文件中 hbm2ddl.auto 设置为create.
不能这么设置,每次重新启动都会创建的。