为什么要使用Hibernate Mapping Component?

时间:2012-01-30 10:40:13

标签: java hibernate hibernate-mapping

我正在学习hibernate,我遇到了Hibernate Mapping Component。 如果我们可以为学生和地址提供相同的pojo课程,我们为什么要使用它?

2 个答案:

答案 0 :(得分:3)

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

原因之一:您希望以不同方式对其进行建模

在对象中,您希望以最佳方式为某些内容建模。这意味着有一件事是学生和其他地址。在未来,您可以为每个学生提供更多地址,或者没有,所以如果您有两个不同的对象,那么迁移到该模型会更容易。

将其视为高内聚和低耦合(良好的设计模式)。每个班级都有其含义,责任感,行动范围有限。孤立的类越多,准时的变化就越多。您的代码也会越模块化。

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

原因二:遗留模式

以身作则。如果您有一个旧的单表并且想要使用两个对象,则需要此映射。或者......如果你的应用程序已经完成,基于两个对象,但你的数据库已经重新设计,你决定一个表更好。

答案 1 :(得分:1)

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