我正在学习hibernate,我正在开发一个非常小的项目用于学习目的。我有一个问题
我有两个项目 com.common.model 2. com.amar.model
在第一个项目(com.common.model)中有一个名为“Person.java”的类,它有自己的“Person.hbm.xml”文件。 此person类具有firstname,lastname等属性。此人有许多地址,如
public class Person {
private String fn;
private String ln;
private Set<Address> addresses;
//getters and setters
}
此地址类存在于第二个项目(com.amar.model)
中public class Address {
private String street;
private String city;
private Person person; -- Cause for cyclic dependency. How can I avoid this cyclic dependency and how can I map these properties with hibernate ?
// getters and setters
}
此地址也有自己的“Address.hbm.xml”
这两个类都存在依赖关系。我的意思是一个人有多个地址,一个地址只与一个人有关。因此,如果我在Address类中添加一个人条目,它将显示循环依赖性错误。如果我在common.model包中移动这个地址类,我的问题将解决,但将来如果我遇到这个问题我怎么能克服这个问题。
那么我该如何避免这种情况呢?我如何为这两件事创建一个映射。
答案 0 :(得分:0)
将interface
或abstract class
放入您的资源库,然后在其他项目中实施。
Address
的{{1}} Person
或interface
。
您的abstract class
随后变为Person
和PersonImpl
或implements Person
。
然后你必须使用one of the inheritance mapping strategies告诉hibernate。
答案 1 :(得分:0)
谢谢Boris,首先我需要再创建一个项目,我的前两个项目可以使用这个新项目。这个新项目有一个名为Person的新抽象类或接口,如此
public abtsract class Person {
//properties
private Set<Address> addresses;
//getters and setters
}
public class PersonImpl extends Person {
}
public class Address {
// properties
private Person person;.
}
映射是通过“继承映射”这个概念完成的。是鲍利斯吗?