7

我是新来的冬眠。请帮我。

我有 2 个名为 Employee 和 Country 的表。我需要用选定的国家/地区保存 E​​mployee。在我的情况下,我将无处取回员工详细信息并将其显示在 UI 上。我需要维护 Employee 和 Country 对象之间的映射(onetoone mapping)吗?我不能直接保存选定国家的员工吗?

我可以在我的 Employee 域对象中执行以下操作吗?如果不能,请告诉我这方面的潜在问题?

@column(name="countryId")

私人 int 国家 ID;

4

2 回答 2

2

我相信你在这里可能有几个选择。

  1. 您可以将原country语完全排除在域类之外。如果你不需要它,没有理由告诉 Hibernate 去获取它。
  2. 如果您根本不打算修改它,将其映射到您的域类中并应用@Transitive注释可能会得到您想要的。这告诉 Hibernate,关于 Country ID 的任何内容都不需要在数据库级别持久化。

这些方法中的任何一种都有助于确保employee对象和国家 ID 之间的引用完整性。不过,我建议使用第一个。如果您根本没有理由需要国家 ID,请不要将其作为对象的一部分。

如果您确实需要在背面使用 Country ID 来建立关系,我建议您确保包含此

@Column(name = "country", insertable = "false", updatable = "false").  

这使您可以获取国家/地区 ID,而不必担心您会意外覆盖它。

希望有帮助!

于 2012-07-15T21:17:51.543 回答
1

是的,您可以将 countryId 放入您的员工对象中。但是如果你以后不需要国家对象,那么保存国家对象没有任何意义。

如果您正在为未来的未来开发这些东西,并且将来可能需要但现在不需要,那么最好保存国家对象。

于 2012-07-06T10:06:58.300 回答