我是hibernate的新手。请帮帮我。
我有2个名为Employee和Country的表。我需要将Employee保存到所选国家/地区。在我的情况下,我将无处获得员工详细信息并在UI上显示。我是否需要维护Employee和Country对象之间的映射(onetoone mapping)?我不能直接在选定的国家/地区保存员工吗?
我可以在我的员工域对象中执行以下操作吗?如果没有,请告诉我这方面的潜在问题?
@column(名称= “countryId”)
private int countryId;
答案 0 :(得分:2)
我相信你可能有几个选择。
country
原语从您的域类中删除。如果你不需要它,没有理由告诉Hibernate获取它。@Transitive
注释可能会让您获得所需的内容。这告诉Hibernate没有关于Country ID需要在数据库级别持久存在的信息。 这两种方法中的任何一种都有助于确保employee
对象与国家/地区ID之间的参照完整性。不过,我建议使用第一个。如果您根本没有理由需要国家ID,请不要将其作为对象的一部分。
如果您确实需要在背面使用国家/地区ID作为关系,我建议您确保包含此
@Column(name = "country", insertable = "false", updatable = "false").
这样您就可以获得国家/地区ID,而不必担心会意外覆盖它。
希望有所帮助!
答案 1 :(得分:1)
是的,您可以将countryId放在您的员工对象中。但如果你不这样做 在将来需要国家对象,它没有任何意义 保存国家/地区对象。
如果你正在为未来的未来发展而且可能是 将来需要但现在不能更好地保存国家对象。