2017-02-07 88 views
0

我有一個包含NativeQuery,我需要設置的參數,但somothing是錯誤的東陽沒有設置參數,以便查詢是createNativeQuery設置參數

SELECT movieId, title, genres FROM movies where title like '%%'" 

所以返回的所有行的下面。什麼是錯的

public List<T> findMovie(String keyword) { 
     Query q = getEntityManager().createNativeQuery("SELECT movieId, title, genres FROM movies where title like '%?%'", entityClass); 
     q.setParameter(1, keyword); //etc 
     return q.getResultList(); 
    } 
+1

是JDBC語法NOT JPA原生查詢語法。如果使用編號參數,則語法爲「?1」,「?2」等。除此之外,您應該使用bc004346答案所述的內容並將其寫入JPQL,因此可以便攜 –

回答

0
public List<T> findMovie(String keyword) { 
    Query q = getEntityManager().createQuery("SELECT movieId, title, genres FROM movies where title like :keyword", entityClass); 
    q.setParameter("keyword", keyword); //etc 
    return q.getResultList(); 
} 

如果你想使用位置參數,可以使用以下語法: 「?」

public List<T> findMovie(String keyword) { 
    Query q = getEntityManager().createQuery("SELECT movieId, title, genres FROM movies where title like ?1", entityClass); 
    q.setParameter(1, keyword); //etc 
    return q.getResultList(); 
}