0

我之前已经为 Hibernate 询问过这个问题的变体。但是,我现在正在使用 Eclipselink,但它仍然困扰着我。这很简单:

我需要在多对一关系中保留一个包含城市名称的地址对象。我希望能够保留地址并级联拯救城市 - 但前提是城市是独一无二的。据我了解,这不是 JPA 直接支持的吗?可能的解决方案包括使用城市名称作为城市表中的唯一 ID,并在城市表中查询特定城市,然后在保存之前将该对象添加到地址中。我当然已经看到几个 StackOverflow 问题/答案似乎表明这是方法(JPA 级联持续存在 - 多对一

我在这里错过了什么吗?有替代/更好的方法吗?

4

1 回答 1

1

是的,解决方案是从数据库中获取城市,如果不存在则创建它,并将其设置为地址。

没有办法解决这个问题。不过,城市名称不必是主键。我将使用自动生成的、非功能性的代理键作为 PK,并在城市名称上添加唯一约束。这至少可以让您修复城市名称中的拼写错误,而无需更新引用它们的数千个地址。

于 2012-10-28T22:30:10.010 回答