java - OneToOne 与同一实体的双向关系
问题描述
我对OneToOne
同一个实体的双向关系的定义有疑问。
特别是,我定义了一个类User
,我想给它一个属性partner
,即 aUser
本身。
@Entity
@Table(name = "users")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true)
private Long ID;
...
@OneToOne(cascade = CascadeType.ALL, targetEntity = User.class)
@JoinTable(
name = "user_partners",
joinColumns = {@JoinColumn(name = "u1", referencedColumnName = "ID")},
inverseJoinColumns = {@JoinColumn(name = "u2", referencedColumnName = "ID")}
)
private User partner;
...
}
现在,如果我测试我的存储库中定义的这个案例UserRepository.java
:
...
User um = new User(...);
User uf = new User(...);
um.setPartner(uf);
...
我希望两者um
都uf
提到他们的合作伙伴。相反,只有um
我明确定义的引用。
我究竟做错了什么?
解决方案
推荐阅读
- javascript - 当通过 innerHTML 添加内容时,元素会发生不必要的 scoll
- sql - Firebird 2.5 更新或插入
- azure - 部署到具有部署槽的 Azure 生产槽的正确方法是什么
- c# - Resharper:不要为元组扩展 var
- excel - 在只读文本框中显示选择
- javascript - 按下后退按钮时将正确的信息传递给上一个活动
- ios - Swift 4:面具不适用于 UIImage?
- python - 如何正确映射 python 函数,然后在 Tensorflow 中批处理数据集
- asp.net-mvc - @Html.EditorFor 查看缓存旧数据,无法显示日期选择器
- sql - UPDATE 语句与 Sql Server 2014 上的 FOREIGN KEY 约束冲突