I have a Category Entity which can be set to some CredentialData Entity. They are connected with a OneToMany relationship.
I want to be able to delete Categories even when they are used in CredentialData. When I set the Categories CascadeType to ALL/ REMOVE or orphanRemoval than the CredentialData will also be deleted what I dont want to happen. I just want the Category in CredentialData to be set to null when it got deleted. Is there a way to fix this?
CredentialEntity:
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class CredentialData extends BaseEntity {
@ManyToOne
@JoinColumn(name = "categoryId")
private Category category;
@ManyToOne
@NotNull
@JoinColumn(name = "ownerId", nullable = false)
private User owner;
CategoryEntity:
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Category extends BaseEntity {
@ManyToOne
@NotNull
@JoinColumn(name = "ownerId", nullable = false)
private User owner;
@JsonIgnore
@OneToMany(mappedBy = "category", cascade = CascadeType.PERSIST)
private Set<CredentialData> credentialData;