Ich mache eine Anwendung basierend auf JPA/EclipseLink, ich implementiert eine Soft-Lösch-Funktionalität mit @AdditionalCriteria in der Root-Klasse der Hierarchie von Entitäten (alle Entitäten davon erben).Deaktivieren Sie zusätzliche Kriterien nur in einigen Entitätsbeziehungen
Mein Problem ist, dass ich jetzt eine spezielle Entität erstellen muss, die mehrere Beziehungen mit anderen Entitäten enthält; und ich muss alle relationierten Entitäten wiederherstellen, einschließlich der gelöschten. Es ist möglich, @AdditionalCriteria nur in den Beziehungen dieser speziellen Entität mit EclipseLink zu deaktivieren? Wenn nicht, was ist die beste Option, dies zu tun? Mein Code sieht wie folgt aus:
////Example of my top entity class (all others inherit from this)
@AdditionalCriteria("this.deleted = false")
public abstract class TopHierarchyClass {
···
@Column(name = "deleted")
protected boolean deleted = false;
···
}
//Example of entity that needs recover all relationed entities including soft deleted
@Entity
@Table(name = "special_entities")
public class SpecialEntity extends EntityBase {
···
@JoinColumn(name = "iditem", referencedColumnName = "id")
@ManyToOne(fetch = FetchType.LAZY)
private Item item;
···
}
@Entity
@Table(name = "items")
public class Item extends EntityBase {
···
}
Vielen Dank im Voraus