如何在数据库级别没有链接的表中使用hibernate?

时间:2012-11-21 07:06:02

标签: database hibernate hql

我是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)用于表通讯员在数据库级别没有链接的实体

1 个答案:

答案 0 :(得分:0)

如果您的映射对应于数据库表的结构,那么一切都将按预期工作。存在外键约束的事实并不重要。

但你的映射是错误的。在双向OneToMany关联中,必须使用mappedBy属性将 one 侧标记为 many 侧的反面。有关如何映射双向关联的信息,请参阅the hibernate documentation