2017-07-07 118 views
0

我在sql查詢。我想寫在JPA Spring中。JPA Spring查詢sql

我該怎麼辦?

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

+1

SQL查詢中已經存在錯誤=) – Whencesoever

+0

你想要一個jpql查詢還是你想執行sql? –

回答

1

要執行JPA原生SQL查詢,你必須做到以下幾點:

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(); 

如果你想有一個JPQL查詢:

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(); 

使用JPQL查詢更好的風格,因爲它是類型安全的。您可以直接在實體上執行語句,而無需知道數據庫的特定表結構。

+0

謝謝兄弟! –

+0

很高興我能幫到你。請標記爲正確。所以你的問題將顯示爲已回答。 –