0

我正在将 Spring JDBC 用于我正在处理的应用程序并且我遇到了一个问题。在我的域层中,我有字段;原始类型和对象关联。如果一个人属于一个自治市,我有:

public class Person {

    private Municipality municipality;

    // More code
}

public class Municipality {
    // More code
}

在数据库中,您使用主键 + 外键对此进行建模。在这种情况下,person 表有一个外键指向市政表的主键。我为个人和市政当局创建了一个存储库。现在我想检索一个人,但我也想同时将市政当局连接到它。

我要做的第一件事是找到使用 Person 存储库的人。然后我想找到属于这个人的市政府。但是目前我没有在我的域对象中建模的外键。private int municipality_id这意味着,我在 Person 类中没有字段。这将导致域对象与数据库耦合(至少现在是这样)。

发出另一个查询只是为了找到 cityity_id 感觉不正确。我怎么解决这个问题?但是,我需要 cityity_id 才能找到市政府。

4

1 回答 1

1

以下是一些可能的选择。

  1. 在 person 对象上包含市政府 ID。听起来您对这种方法有疑问。这不打扰我。我会简单地将 id 与查询中的其他人数据一起带回。
  2. 发出第二个查询以获取市政府,然后在 person 对象上填充市政府。我也不认为这种方法有任何问题。
  3. 将两个表连接在一起并带回两个对象的数据。在您的映射器中,您将创建一个城市对象并将其设置为人员对象。
于 2013-03-23T00:09:57.560 回答