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