0

我是新来的冬眠。我需要使用休眠从我们的一个旧数据库中获取记录(似乎数据库没有定义正确的 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 关系,但我在数据库中有公用表。

我只是想知道我是否可以将休眠关系(如@Onetomany)用于其表对应的实体在数据库级别没有链接

4

1 回答 1

0

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

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

于 2012-11-21T08:03:36.790 回答