ich eine entityrelation wie dieses:JPA löschen Sie alle entites arbeitet seltsam
In der parentObj Klasse:
@OneToMany(mappedBy = "parentObj", fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
private List<ChildObj> list;
In der ChildObj Klasse:
@JoinColumn(name="PARENT_OBJ")
@ManyToOne
private ParentObj parentObj;
Wenn das übergeordnete Objekt beibehalten oder entfernt, wird das Kind auch persistiert/entfernt. ABER wenn ich versuche, alle Einheiten mit einem CriteriaDelete wie zu entfernen:
CriteriaDelete<ParentObj> query = builder.createCriteriaDelete(ParentObj.class);
query.from(ParentObj.class);
em.createQuery(query).executeUpdate();
oder eine einfache Abfrage wie folgt:
em.createQuery("DELETE FROM ParentObj po").executeUpdate();
ich ein ConstraintViolationException bekam, erklären könnte jemand, warum dies Ereignis?
Ich verwende org.hibernate.ejb. HibernatePersistence Anbieter mit JTA auf einem Wildfly Server.
Dank für die Erklärung, gibt es eine Möglichkeit, alle Entitäten auf elegante Weise aus einer Tabelle zu entfernen? (Zur Zeit wähle ich einfach alle aus und entferne sie in einer foreach.) – gaRos
Apply kaskadieren löschen in der Datenbank ist die einzige Option, die ich kenne. –