【发布时间】:2021-04-08 17:07:19
【问题描述】:
我正在使用 SpringBoot 和 JPA + Hibernate。
我有这些实体:
@Entity
@Table(name = "post")
@AllArgsConstructor @NoArgsConstructor
@Getter @Setter
public class Item extends BaseEntity {
@Id
@Column(name = "id")
@Type(type = "uuid-char")
private UUID uuid = UUID.randomUUID();
@OneToMany(mappedBy = "post", orphanRemoval=true, fetch = FetchType.EAGER)
@MapKey(name="userId")
private Map<UUID, Share> shares;
....
@CreationTimestamp
@Column(name = "creation_date")
@Setter(AccessLevel.NONE)
private Instant creationDate;
@UpdateTimestamp
@Column(name = "last_mod_date")
@Setter(AccessLevel.NONE)
private Instant lastModificationDate;
}
@Entity
@Table(name = "comment"
@AllArgsConstructor @NoArgsConstructor
@Getter @Setter
public class Comment extends BaseEntity {
@Id
@Column(name = "id")
@Type(type = "uuid-char")
@Setter(AccessLevel.NONE)
private UUID uuid = UUID.randomUUID();
@ManyToOne(fetch = FetchType.LAZY)
@NotNull()
@JoinColumn(name = "post_id")
private Post post;
.....
@CreationTimestamp
@Column(name = "creation_date")
@Setter(AccessLevel.NONE)
private Instant creationDate;
@UpdateTimestamp
@Column(name = "last_mod_date")
@Setter(AccessLevel.NONE)
private Instant lastModificationDate;
}
@Test
@Transactional
public void testDeleteItem() {
itemRepo.delete(item);
itemRepo.flush();
}
当我尝试删除父实体(帖子)时,所有相关实体的评论都保留在数据库中。 为什么级联删除不起作用?
【问题讨论】:
标签: java spring-boot hibernate jpa