2017-07-07 4 views
0

Ich habe eine Abfrage in sql. Ich möchte es in JPA Spring schreiben.JPA Spring Query sql

Wie kann ich es tun?

SELECT * FROM user WHERE user.id=3 and user.enabled=1

+1

Es ist bereits ein Fehler in SQL-Abfrage =) – Whencesoever

+0

Möchten Sie eine Jpql-Abfrage oder möchten Sie die SQL ausführen? –

Antwort

1

Um eine native SQL-Abfrage in JPA führen Sie folgendes tun:

EntityManager manager = getEntityManager(); 
Query query = manager.createNativeQuery("SELECT * FROM user WHERE user.id = :id AND user.enabled = :enabled;"); 
query.setParameter("id", 3); 
query.setParameter("enabled", 1); 
Object[] user = query.getSingleResult(); 

Wenn Sie eine JPQL Abfrage wollen:

EntityManager manager = getEntityManager(); 
TypedQuery<User> query = manager.createQuery("SELECT u FROM User u WHERE u.id = :id AND user.enabled = :enabled;", User.class); 
query.setParameter("id", 3); 
query.setParameter("enabled", 1); 
User user = query.getSingleResult(); 

Mit der JPQL Abfrage der bessere Stil, weil es typsicher ist. Sie können die Anweisung direkt in der Entität ausführen, ohne die spezifische Tabellenstruktur Ihrer Datenbank zu kennen.

+0

danke, Bruder! –

+0

Ich bin froh, dass ich helfen konnte. Bitte markieren Sie die Anwer als korrekt. Ihre Frage wird also als beantwortet angezeigt. –