2017-06-16 3 views
0

Ich habe eine Tabelle:ohne Verwendung der ID in JPA

User: id, name, age, role_key 

wo Id die eindeutige Kennung ist. Ich möchte alle Benutzer mit einem bestimmten role_key abrufen.

Ich könnte so etwas tun:

entityManager.createQuery(
    "SELECT u From user WHERE user.role_key LIKE :roleKey") 
    .setParameter("roleKey", roleKey) 
    .getResultList(); 

Aber ich wollte wissen, ob es einen besseren Weg, um die Abfrage zu schreiben. Zum Beispiel, wenn ich nur mit Id abrufen wollte, könnte ich find verwendet haben. Aber da ich role_key verwende, was nicht eindeutig ist, gibt es eine Möglichkeit, dass ich hier nicht die komplette select-Abfrage schreiben muss.

Dank

+2

Definiere "besser"! - Wo siehst du Probleme mit dem, was du hast? – JimmyB

+1

Was genau meinst du mit "besserer Weg"? Tabellendesign, Abfragedesign? –

+1

try spring data jpa – farrellmr

Antwort

1

Neben Jonk Kommentar, ich rate Ihnen @NamedQuery für Performance-Gewinn verwenden, da Ihre Abfrage eine parametrisierte Abfrage ist. Es tut mir leid, das sollte als Kommentar gekommen sein, aber mein rep. wird mir nicht erlauben.