0
org.datanucleus.store.query.QueryCompilerSyntaxException: Identifier expected at character 12 in "u.username== value" 

這裏預計將在12字是我試圖執行查詢:org.datanucleus.store.query.QueryCompilerSyntaxException:標識符 「u.username ==價值」

try{ 
     Query q=em.createQuery("select u from UserJ u where u."+key+"== value"); 
     q.setParameter("value",value); 
     return q.getResultList().isEmpty(); 
    } 
    catch(PersistenceException x) 
    { 
     System.out.println(x.getLocalizedMessage());} 
    finally{  
     em.close(); 
    } 

在哪裏key是按值傳遞:"username"

value是按值傳遞:"test"

回答

2

你的語法是incorre CT,試試這個查詢,而不是:

Query q = em.createQuery("select u from UserJ u where u."+key+" = :value"); 
+0

這是偉大的感謝,但我有一個額外的例外:NullPointerException異常,當q.getResultList()的isEmpty()是事實,就抓住了(實際上存在於數據庫測試值),爲什麼發生這種情況,我會非常感謝你 – YouYou 2013-02-20 15:02:37

+0

當你運行它時,'q.getResultList()'的值是什麼? – Perception 2013-02-20 15:18:45

+0

無效,但我不知道爲什麼 – YouYou 2013-02-20 15:27:04