我们是否需要Hibernate映射?在这种情况下?

时间:2012-06-30 19:10:12

标签: hibernate hibernate-mapping

我是hibernate的新手。请帮帮我。

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

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

@column(名称= “countryId”)

private int countryId;

2 个答案:

答案 0 :(得分:2)

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

  1. 您可以完全将country原语从您的域类中删除。如果你不需要它,没有理由告诉Hibernate获取它。
  2. 如果您不打算在您的域类中对其进行修改,那么应用@Transitive注释可能会让您获得所需的内容。这告诉Hibernate没有关于Country ID需要在数据库级别持久存在的信息。
  3. 这两种方法中的任何一种都有助于确保employee对象与国家/地区ID之间的参照完整性。不过,我建议使用第一个。如果您根本没有理由需要国家ID,请不要将其作为对象的一部分。

    如果您确实需要在背面使用国家/地区ID作为关系,我建议您确保包含此

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

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

    希望有所帮助!

答案 1 :(得分:1)

  

是的,您可以将countryId放在您的员工对象中。但如果你不这样做   在将来需要国家对象,它没有任何意义   保存国家/地区对象。

     

如果你正在为未来的未来发展而且可能是   将来需要但现在不能更好地保存国家对象。