Kann jemand bitte erklären Sie mir die Unterschiede zwischen den folgenden Methoden der PPV-EntityManager: Create(), createNamedQuery() und createNativeQuery() Und erklären Sie mir auch auf welchen Fällen Wir sollten Sie welche Methode verwenden?PPV-EntityManager Create() vs createNamedQuery() vs createNativeQuery()
Antwort
- Create: Gebrauchte eine JPQL
- createNamedQuery zu erstellen: Abfragen verwendet auszuführen nativen/pure SQL Example
Die Create Methode wird verwendet, um dynamische Abfragen zu erstellen, die direkt innerhalb einer Business-Logik definiert sind Abfragen der Anwendung. Beispiel:
public List findWithName(String name) { return em.createQuery( "SELECT c FROM Customer c WHERE c.name LIKE :custName") .setParameter("custName", name) .setMaxResults(10) .getResultList(); }
Die createNamedQuery Methode wird verwendet, um statische Anfragen zu erstellen, oder Abfragen, die mithilfe der javax.persistence.NamedQuery Annotation in Metadaten definiert sind. Das name-Element von @NamedQuery gibt den Namen der Abfrage an, die mit der createNamedQuery-Methode verwendet wird. Das Abfrageelement @NamedQuery ist die Abfrage:
@NamedQuery( name="findAllCustomersWithName", query="SELECT c FROM Customer c WHERE c.name LIKE :custName" )
Hier ist ein Beispiel von createNamedQuery, die die @NamedQuery verwendet:
@PersistenceContext
public EntityManager em;
...
customers = em.createNamedQuery("findAllCustomersWithName")
.setParameter("custName", "Smith")
.getResultList();
Die createNativeQuery Erstellen Sie eine Instanz von Abfrage zum Ausführen einer systemeigenen SQL-Anweisung.hier sind einige Gründe Wahl createNativeQuery:
- Low-Level-Zugriff, was bedeutet, dass Sie die Zuordnung selbst optimieren und verarbeiten kann; Mit SQL greifen Sie tatsächlich auf die Datenbanktabelle zu, während Sie mit JPQL auf die Entitätsobjekte zugreifen.
- Vielleicht möchten Sie nicht JPQL lernen, wenn Sie bereits SQL wissen
- Sie haben bereits die Abfragen in SQL geschrieben und haben keine Ressourcen/Zeit zu portieren
JPQL Für weitere Informationen besuchen Sie diese Links:
Ich bin schon durch diese Links aber nicht in der Lage zu verstehen. Also diese Frage gepostet. – Krish
Während diese Links theoretisch die Frage beantworten können, [wäre es vorzuziehen] (// meta.stackoverflow.com/q/8259), hier die wesentlichen Teile der Antwort aufzunehmen und die Links als Referenz zur Verfügung zu stellen. Sonst wäre ein Kommentar ausreichend. –
@TobiasLiefke Vielen Dank für Ihren Rat, ich aktualisierte meine Antwort –
CreateQuery
wird verwendet, um eine JPQL-Abfragen
createNamedQuery
wird verwendet Abfragen mit Namen in Zuordnungsdatei oder Annotation, Beispiel zu definieren: obj.createNamedQuery("entity.findbycode",Something.class)
createNativeQuery
verwendet wird nativer/pure SQL-Abfragen auszuführen.
- 1. NHibernate - CreateCriteria vs Create
- 2. Entity Framework - Create VS ExecuteFunction VS ExecuteStoreQuery VS ExecuteStoreCommand
- 3. create/append node vs innerHTML
- 4. Rake db: create vs Rake db: create: alle
- 5. vb.net Create vs direktem Bezug mit New
- 6. Entity Framework 6 Create() vs. new
- 7. FtpWebRequest: verschachtelten Verzeichnissen (lokale vs remote) create
- 8. Mit gemeinsamen Tabellenausdruck vs. CREATE VIEW Leistung
- 9. Mit IN vs ANY in CREATE FUNCTION
- 10. Create vs Bearbeiten Variable Berechtigung - Octopus Deploy
- 11. Klasse vs Paket vs Modul vs Komponente vs Container vs Service vs Plattform in Java Welt
- 12. Opa vs Dart vs Haxe vs Coffee
- 13. Akkumulieren vs falten vs reduzieren vs komprimieren
- 14. body.scrollTop vs documentElement.scrollTop vs window.pagYOffset vs window.scrollY
- 15. ACE vs Boost vs Poco vs wxWidgets
- 16. Inline vs __inline vs __inline__ vs __forceinline?
- 17. Metaphon vs Levenshtein vs Soundex vs Hamming
- 18. Standort vs GeoPoint vs 1E6 vs Aufladen
- 19. VS 2013 MSTest vs nUnit vs xUnit
- 20. Exec vs ExecWait vs ExecShell vs nsExec :: Exec vs nsExec :: ExecToLog vs nsExec :: ExecToStack vs ExecDos vs ExeCmd
- 21. SpiderMonkey vs JavaScriptCore vs?
- 22. & vs * und | vs +
- 23. Unterschied zwischen require und install vs create-project in Composer
- 24. IDEA - "Import von externem Modell" vs "Create from existing source"?
- 25. after_create: foo vs after_commit: bar,: auf =>: create
- 26. Bundler vs RVM vs Gems vs RubyGems vs Gemsets vs System Ruby
- 27. Mathematica: Unevaluated vs Aufschieben vs Halten vs Holdform vs HoldAllComplete vs etc etc
- 28. "CREATE PROCEDURE SPNAME AS" vs. "CREATE PROCEDURE SPNAME als BEGIN/END"
- 29. ScheduledExecutorService vs Timer vs Handler
- 30. HttpRequest vs HttpRequestMessage vs HttpRequestBase
tolle Antwort. Danke – Krish
außer dass "HQL" nichts mit JPA zu tun hat. JPA verwendet JPQL –