Wenn die Methoden createQuery () und find () von EntityManager verwendet werden?

7

Ich würde gerne den Unterschied zwischen diesen Methoden kennen.

Wenn die Methoden createQuery() und find() von EntityManager verwendet werden?

Was die Vorteile von jedem von ihnen?

Danke für die Antwort.

    
Andriel 29.03.2013, 14:09
quelle

2 Antworten

12

Sie verwenden find , wenn Sie eine Entität nach Primärschlüssel suchen möchten. Das bedeutet, dass Sie genau wissen, wonach Sie suchen, Sie möchten es nur aus der Datenbank herausholen.

Sie verwenden createQuery , wenn Sie nach Entitäten suchen möchten, die Kriterien verwenden, oder wenn Sie eine JPQL-Anweisung verwenden möchten, um zu definieren, was Sie zurückbekommen. Daher würden Sie die Abfrage verwenden, wenn Sie eine Entität oder eine Sammlung von Entitäten abrufen möchten, die bestimmten Bedingungen entsprechen.

    
Nathan Hughes 29.03.2013, 14:14
quelle
9

Mit der Methode createQuery können Sie eine JPQL-Anweisung erstellen, die ausgeführt wird. Die erlaubte JPQL-Anweisung ist viel dynamischer als die von find . Zum Beispiel in der folgenden Tabelle:

%Vor%

Sie können eine Abfrage ausführen, um die Katze nach ihrem Namen zu suchen.

%Vor%

Mit der Methode find können Sie ein Objekt nur mit seinem Primärschlüssel abrufen. Um die Methode find für die obige Tabelle zu verwenden:

%Vor%

Kurz gesagt, createQuery ermöglicht es Ihnen, Entitäten dynamischer abzurufen, während find Sie auf die Suche nach einer Entität mit einer bekannten ID beschränkt.

    
Kevin Bowersox 29.03.2013 14:17
quelle

Tags und Links