当前位置: 首页 > 知识库问答 >
问题:

在这种情况下,我们需要Hibernate映射吗?

闾丘坚诚
2023-03-14

我是冬眠的新手。请帮助我。

我有 2 个名为“员工”和“国家/地区”的表。我需要保存所选国家/地区的“员工”。就我而言,我不会在任何地方获取员工详细信息并将其显示在UI上。我是否需要维护员工和国家/地区对象之间的映射(一对一映射)?我不能直接保存所选国家/地区的员工吗?

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

@column(名称=“国家 ID”)

私有 int countryId;

共有2个答案

空慈
2023-03-14

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

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

苍宜修
2023-03-14

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

  1. 您可以将国家/地区原语完全排除在您的域类之外。如果你不需要它,没有理由告诉Hibernate获取它。
  2. 如果您根本不打算修改它,请在域类中映射它并应用@Transitive注释可能会得到您想要的东西。这告诉Hibernate,国家/地区ID的任何内容都需要在数据库级别保留。

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

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

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

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

希望对您有所帮助!

 类似资料:
  • 问题内容: 想象这样的情况: 现在,我从理论上担心,在哪里克隆状态(中的第四条语句),可能会发生我没有获得该状态的最新版本的情况- 由于先前调用的某些调用正在等待中,这是否是正确的假设? 现在,我的问题是,如果我以以下方式(基本上与回调参数一起使用)重写上述代码,它会更安全吗?(就不处于不同步状态而言)。 我是否还需要在内部采取一些其他措施(第二个重写版本)? ps。只是更改状态的函数-假设当用户

  • 问题内容: 我已经看到我们可以拥有复合键,其中主键由两个表的组合主键组成。 喜欢的人和书 但我想问的是,我们需要对编程语言进行硬编码 我的意思是可以,我可以有任意名称的单独列作为主键,然后我不必对其进行硬编码,并且可以像平常一样执行我的功能 问题答案: 在“新”应用程序中不应考虑使用组合键。过去,曾经有人认为“业务密钥”比“代理密钥”更好。 编辑:按照克里斯的要求,我正在扩大答案。 首先,我要说明

  • 我用干净的架构在android项目上工作。 我有以下课程: 使用public dispose()方法从onNext实现中释放序列。 但我还是不明白使用它的好处。是否用于在销毁视图时从observable取消订阅,以便从转到并关闭发射器上的订阅?

  • 无法编译以下内容: 特别是,使用javac编译时,错误将是: 但下面的汇编很好: 唯一的区别是我引入了一个额外的变量。请注意,我没有施法,所以没有语义变化。 有人能解释为什么需要这样做吗?

  • 在哪种情况下会发生这种情况?

  • 我有以下项目结构: null 谢了。

  • 问题内容: 我有PK,它是自增密钥。我需要将记录插入数据库中,然后取回该PK并在另一个插入中使用它。 但是,我想在一次交易中做到这一点。那可能吗。这样的想法是,如果我必须执行的任何更新/插入都失败了,那么我可以回滚所有内容,但是我的印象是我需要进行一次提交。 我本来打算先在ado.net上执行此操作,然后切换到存储过程,因为我认为这可能会解决此问题。 SP在这种情况下会帮助我吗? 问题答案: 是的

  • 这是我的建筑。格雷德尔: 我试图找出问题所在,使用以下代码来分析问题: 结果是: