hibernate.hbm2ddl.auto 属性设置为true,但是不能生成数据库表

hibernate.hbm2ddl.auto 属性设置为true,但是不能生成数据库表,第1张

update只是更新表结构,但不能生成

请仔细参考一下hibernatehbm2ddlauto的配置参数,有以下四种:

validate:加载hibernate时,验证创建数据库表结构

create:每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。

create-drop:加载hibernate时创建,退出是删除表结构

update:加载hibernate自动更新数据库结构

所以,你可以先用create属性,然后运行一次后改用update,以免数据丢收

我们在使用一对一,一对多,多对多时,一般来说,表与表之间都会有相应的关联关系,但是Hibernate的作者考虑到了各种情况,比如虽然没有外键关系,可是A表的字段就是B表的主键,这种情况也会有,在这种情况下,如果设设置Hibernate的一对一,一对多,程序也是可以运行的(前提是数据正确,也就是说符合外键的定义),所以外键的一个作用就是使数据符合规范举个例子,在数据提供者忘记吃脑残片的情况下,比如A的字段是B的主键,但是某条A的记录的字段不为空,但是在B表中不能找到相应的记录,这种情况是不符合外键定义的,但是我们又不能改数据,Hibernate就能处理这样的情况:添加@NotFound(action = NotFoundActionIGNORE)就能解决,所以说,外键并不是必须的,但是个人感觉有外键会比较好以上是个人的一点小小经验希望能帮到你

以上就是关于hibernate.hbm2ddl.auto 属性设置为true,但是不能生成数据库表全部的内容,包括:hibernate.hbm2ddl.auto 属性设置为true,但是不能生成数据库表、hibernate 以我目前的情况怎么关联数据库表、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10179342.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存