我正在尝试找到有关此问题的解决方案: 我有一个映射另一个实体规则的关系表。
@Entity
public class Relation {
@Id
public Long id;
@OneToOne
public Address addressHome;
@OneToOne
public Address addressWork
}
和一个班级地址
@Entity
public class Address {
@Id
public Long id;
}
我会在地址之间建立双向关系。
有人可以帮助我吗? 谢谢
答案 0 :(得分:0)
您需要做的就是告诉Hibernate Address
和Relation
之间的关系:
首先,您需要将其实现到Relation中:
@Entity
public class Relation {
@Id
public Long id;
@OneToOne
@JoinColumn(name = "addressHome", referencedColumnName = "id")
public Address addressHome;
@OneToOne
@JoinColumn(name = "addressWork", referencedColumnName = "id")
public Address addressWork;
}
然后,您需要像这样编辑Address类:
@Entity
public class Address {
@Id
public Long id;
@OneToOne(mappedBy = "addressHome")
public Relation relationHome;
@OneToOne(mappedBy = "addressWork")
public Relation relationWork;
}
如果愿意,可以将注释放在getter上,而不是放在变量上。
答案 1 :(得分:0)
我没有足够的声誉来评论,但是假设这就是您在代码中拥有的全部,那么它应该可以那样工作,也许您忘记了@JoinColumn标签指定了数据库字段的名称。建议您提供有关您的数据模型如何关联的更多信息。