이번에는 잘 사용하지 않던 OnDelete 옵션을 적용해봤다.
부모 삭제시 자식까지 한번에 삭제하는 기능이다.
컨텐츠 제거시 컨텐츠 이미지까지 한번에 제거해야 했는데, 쿼리로 작성하자니 조금 번거로워서 해당 옵션을 적용했다.
컨텐츠
class ContentJpaEntity(
var name: String = "",
var url: String = "",
var memo: String = "",
@Enumerated(EnumType.STRING)
var contentType: ContentType = ContentType.URL,
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
var user: UserJpaEntity? = null,
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "folder_id")
var folder: FolderJpaEntity? = null,
@OneToOne(mappedBy = "content", fetch = FetchType.LAZY)
var thumbnailImage: ThumbnailImageJpaEntity? = null,
@OneToMany(fetch = FetchType.LAZY, mappedBy = "content")
var contentHashTags: MutableSet<ContentHashTagJpaEntity> = mutableSetOf(),
@Id
val id: String = uuid()
)
이미지
class ThumbnailImageJpaEntity(
var imageUrl: String = "",
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "content_id")
@OnDelete(action = OnDeleteAction.CASCADE)
var content: ContentJpaEntity? = null,
@Id
val id: String = uuid()
)
해결 완료