Java Hibernate项目中Pojo的循环依赖性

Java Hibernate项目中Pojo的循环依赖性,java,spring,hibernate,oop,pojo,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; } i、 e 1-1依赖性意味着一个用户有一个地址,反之亦然,一

我喜欢典型的hibernate pojo类外观

public class User {

    private String username;
    .
    .
    .
    private Address address;

}

public classs Address {

    private String line1
    .
    .
    .
    private User user;

}
i、 e 1-1依赖性意味着一个用户有一个地址,反之亦然,一个地址属于一个用户

现在,这种通过组合表达的依赖性很难模块化

当项目变大时,我希望使用maven的多模块依赖关系,并将POJO/域对象拆分到不同的模块/项目中

但这会导致循环依赖,而且我们确实希望所有的类都是相互关联的

因为我们在hibernate的orm中使用它们,所以我们需要它们严格地相互组合

有什么建议我们可以把这些分开 1.用户模块 2.地址模块

允许我只使用一个必需的


我读了一些帖子,其中建议使用模板/接口,但我怀疑它是否能在幕后与hibernate配合使用。

好吧,我找到了一个答案,可以改变依赖关系,使其不再是双向的,而是尽可能地是单向的

与上述情况一样—

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

i、 e使用地址pogo将user.id保存为整数,而不是在地址中包含用户对象

Address {
    User user
    ...
    ....

}


Adress {
    Integer userid
    ....
    ....
}
现在,用户模块依赖于地址,但地址不依赖于用户。

-我发现:)-可能正确吗?