我是hibernate的新手。我需要使用hibernate从我们的一个遗留数据库中获取记录(似乎数据库没有定义正确的FK关系)。
public class Class1 {
@Id
int index;
@ManyToOne
private Class2 class2;
....
....
}
public class Class2 {
...
private Collection<Class1> class1;
@OneToMany
@JoinColumn(name="index")
public Collection<Class1> getClass1() {
return class1;
}
public void setClass1(Collection<Class1> class1) {
this.class1= class1;
}
}
我的要求是将对象作为集合获取。
Object1 of Class2 -> Object1 of Class 1
Object2 of class 1
Object3 of class 1
Object1 of Class2 -> Object4 of Class 1
Object5 of class 1
Object6 of class 1
Object1 of Class2 -> Object7 of Class 1
Object8 of class 1
Object9 of class 1
我在数据库中有公共表,但未指定FK关系。
我只是想知道我是否可以将hibernate关系(如@Onetomany)用于表通讯员在数据库级别没有链接的实体
答案 0 :(得分:0)
如果您的映射对应于数据库表的结构,那么一切都将按预期工作。存在外键约束的事实并不重要。
但你的映射是错误的。在双向OneToMany关联中,必须使用mappedBy
属性将 one 侧标记为 many 侧的反面。有关如何映射双向关联的信息,请参阅the hibernate documentation。