JPA -Erbschaft Wie löscht man die Elternklasse, wenn die untergeordnete Klasse gelöscht wird?Java

Java-Forum
Anonymous
 JPA -Erbschaft Wie löscht man die Elternklasse, wenn die untergeordnete Klasse gelöscht wird?

Post by Anonymous »

Angenommen, ich habe zwei Entitäten < /p>

Code: Select all

package com.srilakshmikanthanp.assets.notification

import com.srilakshmikanthanp.assets.notification.assetsurvey.AssetSurveyNotification
import com.srilakshmikanthanp.assets.user.User
import jakarta.persistence.*
import org.hibernate.annotations.*
import java.time.Instant

@EntityListeners(NotificationEntityListener::class)
@Inheritance(strategy = InheritanceType.JOINED)
@Entity
class Notification(
@Column(nullable = false)
@Id
@GeneratedValue(strategy = GenerationType.UUID)
var id: String? = null,

@Column(nullable = false)
var title: String,

@Column(nullable = false)
var description: String,

@Column(nullable = false)
var read: Boolean = false,

@ManyToOne
@JoinColumn(name = "recipient_id", nullable = false)
var recipient: User,

@ManyToOne
@JoinColumn(name = "sender_id", nullable = false)
var sender: User,

@TenantId
var organizationId: String? = null,

@Column(nullable = false, updatable = false)
@CreationTimestamp
var createdAt: Instant? = null,

@Column(nullable = false)
@UpdateTimestamp
var updatedAt: Instant? = null,
)
< /code>
package com.srilakshmikanthanp.assets.notification.assetsurvey

import com.srilakshmikanthanp.assets.asset.survey.AssetSurvey
import com.srilakshmikanthanp.assets.notification.Notification
import com.srilakshmikanthanp.assets.user.User
import jakarta.persistence.Entity
import jakarta.persistence.JoinColumn
import jakarta.persistence.ManyToOne
import jakarta.persistence.OneToOne
import jakarta.persistence.PreRemove
import jakarta.persistence.PrimaryKeyJoinColumn
import jakarta.persistence.Table
import jakarta.persistence.UniqueConstraint
import org.hibernate.annotations.OnDelete
import org.hibernate.annotations.OnDeleteAction
import java.time.Instant

@Entity
@PrimaryKeyJoinColumn(name = "notification_id")
@Table(uniqueConstraints = [UniqueConstraint(columnNames = ["notification_id"])])
@OnDelete(action = OnDeleteAction.CASCADE)
class AssetSurveyNotification(
@ManyToOne
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "asset_survey_id", nullable = false)
var survey: AssetSurvey,

id: String? = null,
title: String,
description: String,
recipient: User,
sender: User,
read: Boolean = false,
createdAt: Instant? = null,
updatedAt: Instant? = null,
) : Notification(
id = id,
title = title,
description = description,
recipient = recipient,
sender = sender,
read = read,
createdAt = createdAt,
updatedAt = updatedAt
)
Wenn das Assetsurvey jetzt gelöscht wird, kaskadiert es in Assetsurveynotification , aber es wird nicht zur Benachrichtigung kann es irgendeine Möglichkeit haben, dies zu tun? Ich habe nur eine Benachrichtigung als übergeordnetes übergeordnet, da viele Art von Benachrichtigung auch für eine gemeinsame API vorhanden bin. Und ist die Vererbung, die ich benutze, für meinen Zweck in Ordnung oder ich muss dies ändern?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post