在替换OneToOne关系时,Hibernate删除了孤儿

时间:2016-02-23 17:44:23

标签: java hibernate spring-data

我有以下实体:

@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级联?

0 个答案:

没有答案