2017-03-06 69 views
0

我正在使用JPA eclipse鏈接與彈簧來查找基於字符串的數據庫中的數據。我已經impelemted方法未知的列錯誤使用eclipselink jpa

@Transactional 
    public String authorization(LL l){ 
     Query query = m.createNativeQuery("SELECT a FROM user a WHERE a.name = ?"); 
     query.setParameter(1, l.getName()); 
     UserEntity tmp = (UserEntity) query.getSingleResult(); 
} 

我的數據庫是簡單

id | name | password 

但是通過執行此我得到錯誤

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'a' in 'field list' 

我已經閱讀文檔,這應該是浩執行的正確方法這樣的查詢。爲什麼這會拋出所說的錯誤?我犯了錯誤還是忽略了某些東西?

所有幫助表示讚賞。

+0

這不是SQL。它是JPQL –

回答

1

你似乎期望有一個實體作爲一個結果,所以不是本機查詢:

m.createNativeQuery 

使用

m.createQuery 

更新

如果您需要要使用原生查詢,您應該添加預期結果類別:

Query query = m.createNativeQuery("SELECT a.* FROM user a WHERE a.name = ?", UserEntity.class); 
+0

使用createQuery拋出「用戶」沒有映射錯誤cuz即時通訊不使用休眠 – Darlyn

+0

然後你必須添加結果類作爲第二參數..你可能必須在選擇cluase中使用別名來獲得專有名稱 –