Mein Team verwendet die Hibernate-Kriterien-API lange Zeit unter Hibernate 3.x. Vor kurzem wollten wir die Hibernate-Version auf 5 aktualisieren, aber die Criteria-API schien nicht mehr zu empfehlen. Aber JPA sieht wie eine völlig andere API aus, die wir nicht riskieren wollen. Sollten wir weiterhin die alten Kriterien verwenden?Wird die Legacy-Kriterien-API weiterhin empfohlen?
Antwort
Nun, die Warnung in der Version 5.0 Criteria Chapter ist verflixt groß:
Hibernate bietet eine ältere Legacy-org.hibernate.Criteria API, die als veraltet betrachtet werden sollten. Keine Feature-Entwicklung zielt auf diese APIs ab. Schließlich werden Hibernate-spezifische Kriterienfunktionen als Erweiterungen der JPA-Datei javax.persistence.criteria.CriteriaQuery portiert. Weitere Informationen zur API "org.hibernate.Criteria" finden Sie unter Abfragekriterien für ältere Hibernate-Kriterien.
Und es gibt noch mehr:
Nutzer der älteren Hibernate org.hibernate.Criteria Abfrage API wird der allgemeine Ansatz erkennen, wenn wir die JPA API glauben, überlegen zu sein, da es eine saubere Optik stellt auf die Lehren aus dieser API.
Es scheint also, dass es wirklich an Ihrem Team liegt. Es hat eine Weile gedauert, bis ich mich an die JPA API gewöhnt habe, aber jetzt ist es ziemlich flüssig. Ich bin in Hibernate für die Leistung für sehr große Abrufe zurückgegangen, aber im Allgemeinen habe ich kein Problem mit etwas JPA. Ich neige dazu, @NamedQueries
für Basisaccess und die Criteria
API zu verwenden, wenn ich etwas dynamischeres brauche.
EDIT: Update konnte ich das Leistungsproblem lösen und die Anwendung ist jetzt streng JPA.
Wenn Sie Ihren Code aus Zeitgründen/Projektterminen/anderen Risiken nicht von der alten Hibernate Criteria-API in die JPA-API verschieben können, sollten Sie zumindest eine Art Zeitleiste festlegen, um darauf zurückzugreifen . Hibernate wird höchstwahrscheinlich die veraltete Criteria-API innerhalb der nächsten 2 Hauptversionen vollständig löschen.
- 1. Wie wird die C# -Klassenbibliothek (DLL) empfohlen?
- 2. Wird die Verwendung des Mediatormusters empfohlen?
- 3. Wird die Verschlüsselung von Javascript empfohlen?
- 4. Wird die Legacy-Firebase-API weiterhin unterstützt?
- 5. Warum HibernateTemplate nicht empfohlen wird?
- 6. Welcher PyPy Speicherprofiler wird empfohlen?
- 7. Warum wird die Verwendung der Direktive in C++ nicht empfohlen?
- 8. Wird die Verwendung von GCE als Webserver empfohlen?
- 9. Wird die Dependency-Injektion empfohlen, wenn keine Mehrfachimplementierung erfolgt?
- 10. Warum "$(). Ready (handler)" wird nicht empfohlen?
- 11. Welcher Ansatz wird empfohlen: aggregateRoot.Items.Add (...) oder aggregateRoot.AddItem (...)
- 12. Wird ObservableCollection empfohlen, bevor Elemente hinzugefügt werden?
- 13. DDS - Welche wird empfohlen - OpenSplice oder CoreDX?
- 14. Warum wird gunicorn_django nicht mehr empfohlen?
- 15. Was Importeinstellungen in Datenbank-Projekt empfohlen wird
- 16. Warum wird empfohlen, .innerHTML zu vermeiden?
- 17. Wird DwmIsCompositionEnabled weiterhin in Windows 8 verwendet?
- 18. Animation, die Probleme weiterhin bestehen
- 19. Array wird weiterhin mit falschem Index gefüllt
- 20. Warum wird mein ASP.NET-Cache weiterhin gelöscht?
- 21. Validierungsmeldung wird weiterhin angezeigt, wenn eine Autopostback-Dropdownliste ausgelöst wird
- 22. Eklipse weiterhin
- 23. Raise 404 und weiterhin die URL Kette
- 24. GAE Initialisierung empfohlen Praxis
- 25. die Verwendung in einer switch-Anweisung weiterhin
- 26. Es wird empfohlen, die Web SQL-Datenbank für die Speicherung auf der Clientseite zu verwenden.
- 27. Was ist "Fluid powered TYPO3" und wird es empfohlen?
- 28. Wie wird empfohlen, Nachrichten in Sende-Pipelines aufzuteilen?
- 29. Wird Git für große (> 250 GB) Inhaltsrepositorys empfohlen?
- 30. Wie wird empfohlen, benutzerdefinierte doppelte Unterstrichvariablen in Python zu verwenden?