为啥我们需要创建数据库,而我们可以使用 Hibernate 生成它们? [复制]
Posted
技术标签:
【中文标题】为啥我们需要创建数据库,而我们可以使用 Hibernate 生成它们? [复制]【英文标题】:Why do we need to create databases while we can generate them using Hibernate? [duplicate]为什么我们需要创建数据库,而我们可以使用 Hibernate 生成它们? [复制] 【发布时间】:2013-08-15 10:14:28 【问题描述】:我想知道为什么我们需要使用 Oracle 或 mysql 创建数据库,而我们可以使用诸如 Hibernate 之类的 ORM 轻松生成它们?
【问题讨论】:
【参考方案1】:只是从相关的post中摘录:
始终建议手动生成架构,最好是 通过支持数据库模式修订的工具,例如伟大的 Liquibase。从实体生成模式非常有用 理论,但在实践中很脆弱,并导致很多问题 从长远来看(相信我)。 不同的应用程序可能使用相同的数据库,而不是所有的 他们将使用hibernate甚至java。数据库模式应该 不是由 ORM 规定的,它应该围绕数据和 业务需求 连接时的附加属性(通用术语不是 java 属性) 表在 RDBMS 中工作得很好,但有些复杂,而且 在 ORM 中使用效率低下。从 ORM -> RDBMS 做这样的映射 可能会创建效率不高的表。理论上是可以的 使用休眠生成的代码构建完全相同的连接表, 但在编写实体时需要特别小心【讨论】:
【参考方案2】:根据我的经验,我使用传统的 RDBMS 比 ORM 有更多的控制权。在设计/实现架构时使用 rdbms 进行测试更容易。
【讨论】:
以上是关于为啥我们需要创建数据库,而我们可以使用 Hibernate 生成它们? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥我们不能使用 RuntimeException 而不是创建自定义异常? [复制]