我有以下实体:
@Entity
@Getter
@Setter
@ToString
public class Team extends EntityBase {
......
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY,
orphanRemoval = true, optional = false)
@JoinColumn(name = "auth_id")
private TeamAuthentication auth;
......
}
所以它有一个TeamAuthentication
表引用。后一个实体看起来如下:
@Entity
@Getter
@Setter
@ToString
public class TeamAuthentication {
@Id
@GeneratedValue
private Long id;
@Column(nullable = false)
private String accessToken;
}
我想要的是,当我从表中获取现有的Team
实体并将TeamAuthentication
表的引用替换为字段auth
,然后保留此Team
实体使用teamRepository.save()
,我希望旧的TeamAuthentication
将从其表中删除。目前它停留在桌面上,成为一种不会被使用或查询的游荡入口。
如何在更改时删除OneToOne引用时利用Hibernate级联?