0

我典型的休眠 pojo 类看起来

public class User {

    private String username;
    .
    .
    .
    private Address address;

}

public classs Address {

    private String line1
    .
    .
    .
    private User user;

}

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

现在这种通过组合表达的依赖关系很难模块化。

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

但这会导致循环依赖,我们同样明智的是所有类都是相互关联的。

而且因为我们以休眠的形式使用它们,所以我们需要它们严格地相互组合。

任何我们可以将它们拆分为独立 1. 用户模块 2. 地址模块的建议

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

我通读了一些建议使用模板/接口的帖子,但我怀疑它是否可以在幕后使用 hibernate。

4

1 回答 1

0

好吧,我找到了将依赖项从非双向更改为尽可能单向的答案。

就像在上面的情况下 -

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

即有地址 pogo 将 user.id 保存为整数,而不是在 Address 中包含用户对象

Address {
    User user
    ...
    ....

}


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

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

于 2013-07-30T05:13:56.477 回答