【问题标题】:Why to use Hibernate Mapping Component?为什么要使用 Hibernate 映射组件?
【发布时间】:2012-01-30 10:40:12
【问题描述】:

我正在学习休眠,我遇到了休眠映射组件。 如果我们可以为学生和地址设置相同的 pojo 类,为什么要使用它?

【问题讨论】:

  • 不知道为什么有些人不赞成这个问题。也许你很明显看到答案,但问题是有效的:“有一个工具,我看到了另一种做事方式,有什么原因可以让我使用它”。

标签: java hibernate hibernate-mapping


【解决方案1】:

你可以。但这并不意味着你想要。

原因一:您想对它们进行不同的建模

在对象中你想以最好的方式建模。这意味着一件事是学生和其他地址。将来,每个学生可能有更多地址,或者没有,因此如果您有两个不同的对象,迁移到该模型会更容易。

将其视为高内聚和低耦合(良好的设计模式)。每个类别都有其意义、责任和有限的行动范围。越孤立的类,越准时的变化。您的代码也将更加模块化。

相比之下,您在表中做出让步以获得性能和更直接​​的查询。这意味着您可以对模型进行非规范化(例如连接学生和地址)。

原因二:遗留模型

举个例子。如果您有一个旧的单表并想使用两个对象,则需要此映射。或者...如果您的应用程序已经基于两个对象创建,但您的数据库经过重新设计,您决定使用一个表更好。

【讨论】:

    【解决方案2】:

    还有一点,Address(这里被视为组件)不能有自己的主键,它使用封闭的 Student 实体的主键。

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 2021-02-20
      • 2013-05-03
      • 1970-01-01
      • 2015-12-15
      相关资源
      最近更新 更多