java – Hibernate是否必须推动数据库设计?
我昨天花了很多时间阅读关于Hibernate的各种文章/教程,尽管我对它的强大程度感到震惊,但我还是有一个主要关注点.
似乎标准的做法是让Hibernate为你设计/生成你的数据库架构,这是一个令人窒息的新概念.从我读过的教程中,你只需在你的hibernate.cfg.xml配置文件中添加一个新实体,用@Entity注释你想要的任何POJO,并且瞧 – Hibernate为你创建表.虽然这很酷,但我想知道一些场景: >如果您已经拥有数据库架构并且Hibernate想要为您生成的一个架构并不符合它,该怎么办?如果你有一个疯狂的DBA拒绝在预定义(非Hibernate)架构上让步怎么办? 我想根本就是以下内容: 看起来Hibernate会在您的数据库上创建并强制使用特定的架构/配置.我想知道这个议程将如何与我们的平台标准,我们的DBA哲学以及我们对Hibernate与之交互的表调整/调整表的能力发生冲突. 提前致谢. 解决方法
Hibernate提供了一种将对象映射到表的默认方式 – 比如几个工具/库,为了简单起见,它倾向于使用约定优于配置.
但是,如果要以不同方式将实体映射到数据库表,可以显式告诉Hibernate如何映射这些表(从简单的属性,如更改表名,再到重新定义相关实体之间的外键关系以及如何保持这些关系) ). 如果你正确地执行此操作,则不需要实例化和保存现有数据,因为这没有意义 – 数据库已经包含了与Hibernate理解的形式完全相同的实体信息. (考虑一下 – 加载然后立即保存实体应始终是无操作,因此可以完全跳过.) 所以对你的问题的简短回答是“不”.如果你不关心设计表,你可以让Hibernate采用合理的默认值.如果您确实想要显式设计架构,则可以执行此操作,然后将该精确架构描述为Hibernate. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |