我认为解释它比提出问题更容易。我无法找到执行以下操作的公式:
想象一下,我们有一个PHOTO对象。一方面,我们有一个NEWS对象,它有一个带有@OneToOne关系的PHOTO对象。另一方面,我们有一个PROFILE对象,其头像属性是PHOTO对象,也具有@OneToOne关系。同时,我希望PROFILE有一个ALBUM对象,它是一组具有@OneToMany关系的PHOTO对象。
Hibernate不允许我在同一个PHOTO对象上分享@OneToOne和@OneToMany关系。我认为它不能使用同一个表同时在@OneToOne和@OneToMany关系中保存PHOTO对象。
有人可以向我解释为什么或另一种解决问题的方法....
谢谢
答案 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;
}