Ich verwende Hibernate in einem Projekt und bin völlig verwirrt darüber, wann ich org.hibernate.annotations.CascadeType verwenden und wann man javax.persistence.CascadeType-Annotationen verwenden soll.
Zum Beispiel wenn ich so etwas verwenden soll:
%Vor%vs etwas wie folgt:
%Vor%Ich habe auch gelesen, dass Hibernate bestimmte Kaskadentypen ignoriert, die in der one-to-xxxx-Annotation enthalten sind. Kann mich jemand zurechtweisen?
Im Allgemeinen finden Sie viele Beispiele für diese Art von Überlappungen, wenn Sie Hibernate verwenden. Dafür kann es verschiedene Gründe geben. Entweder ist es aus Legacy-Gründen (Hibernate erstellte die Annotation, bevor sie in JPA standardisiert wurde), oder weil Hibernate mehr Funktionalität unterstützt, als der JPA-Standard zulässt, oder weil sie sich nur geringfügig in ihrer Semantik unterscheiden.
In diesem Fall ist die Hibernate-Dokumentation sehr klar, warum @Cascade
existiert, wenn @OneToMany(cascade=...)
der Standard ist. Die Hibernate-Annotation ( @Cascade
) bietet Ihnen viel mehr Optionen als die Standard-JPA-Version und auch eine etwas andere Semantik.
Sie sollten immer die JPA-Standardanmerkungen bevorzugen, solange Sie keine spezielle Hibernate-Funktion / Semantik benötigen.