Spring JDBC一对一的关系

时间:2013-03-23 00:02:41

标签: java spring jdbc spring-jdbc

我正在使用Spring JDBC作为我正在处理的应用程序,我正面临一个问题。在我的域图层中,我有字段;原始类型和对象关联。如果一个人属于我所拥有的市政当局:

public class Person {

    private Municipality municipality;

    // More code
}

public class Municipality {
    // More code
}

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

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

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

1 个答案:

答案 0 :(得分:1)

以下是一些可能的选择。

  1. 在人物对象上包含市政ID。听起来你对这种方法有问题。这不会打扰我。我只是简单地将查询中的其他人数据带回来。
  2. 发出第二个查询以获取市政当局,然后在人物对象上填充市政当局。我也没有看到这种方法的任何问题。
  3. 将两个表连接在一起并返回两个对象的数据。在映射器中,您将创建一个市政对象并将其设置为person对象。