Hjonate项目中Pojo的循环依赖

时间:2013-07-12 11:58:29

标签: java spring hibernate oop pojo

我典型的hibernate pojo类看起来

public class User {

    private String username;
    .
    .
    .
    private Address address;

}

public classs Address {

    private String line1
    .
    .
    .
    private User user;

}

即1-1依赖意味着一个用户有一个地址,而vise一个地址属于一个用户。

现在通过作文表达的这种依赖性非常难以模块化。

当项目变大时,我想使用maven的多模块依赖关系并将pojos / domain对象拆分到不同的模块/项目中。

但这会导致循环依赖,我们确实认为所有类都是相互关联的。

因为我们在休眠状态下使用它们,所以我们需要它们严格地相互合成。

我们可以将这些内容拆分为独立的任何建议 用户模块 2.地址模块

允许我只使用一个必需的。

我阅读了一些建议使用模板/界面的帖子,但我怀疑它会在幕后使用hibernate。

1 个答案:

答案 0 :(得分:0)

好吧,我发现答案是改变依赖性,使其不是双向的,但尽可能使其成为单向的。

与上述情况类似 -

我们需要从用户访问地址,以显示用户的地址,但我们很少有业务场景需要从地址获取用户。

即使地址pogo将user.id保持为整数,而不是在地址

中包含用户对象
Address {
    User user
    ...
    ....

}


Adress {
    Integer userid
    ....
    ....
}

现在用户模块取决于地址,但地址不依赖于用户。