是否可以在集合中使用Spring对象并同时作为属性使用?

时间:2017-10-03 15:51:12

标签: hibernate jpa one-to-one

我认为解释它比提出问题更容易。我无法找到执行以下操作的公式:

想象一下,我们有一个PHOTO对象。一方面,我们有一个NEWS对象,它有一个带有@OneToOne关系的PHOTO对象。另一方面,我们有一个PROFILE对象,其头像属性是PHOTO对象,也具有@OneToOne关系。同时,我希望PROFILE有一个ALBUM对象,它是一组具有@OneToMany关系的PHOTO对象。

Hibernate不允许我在同一个PHOTO对象上分享@OneToOne和@OneToMany关系。我认为它不能使用同一个表同时在@OneToOne和@OneToMany关系中保存PHOTO对象。

有人可以向我解释为什么或另一种解决问题的方法....

谢谢

1 个答案:

答案 0 :(得分:0)

如果要在不同实体中使用.jpg实体,请保持Photo实体独立,并将任何关系存储在使用Photo实体的实体中或映射表中。在您的情况下,您可以使用以下结构。

Photo

您的表结构将是这样的。

class Profile {

    @oneToOne
    @JoinColumn(name="avatar")
    Photo avatar;

    @OneToMany
    @JoinTable(name="profile_album",joinColumns=@JoinColumn(name="profile_id"),inverseJoinColumns=@JoinColumn(name="photo_id"))
    Set<Photo> album;
}