下面的方法使用Java實體管理器的createNativeQuery()方法:EntityManager本機查詢語法?
public List<Dog> findDogById(String id) {
List<Dog> resultList = new ArrayList<>();
try {
resultList = persistence.entityManager().createNativeQuery(" SELECT * FROM DOG WHERE ID = '" + id+ "' ", DogEntity.class).getResultList();
} catch (Exception e) {
}
return resultList;
}
,我有是,這種方法是不返回結果時,我希望它這樣做的問題。即當我直接通過SQL Developer
運行查詢時,我得到了結果,但該方法不會返回相同結果。
我的Syntax
是否正確?我不確定這一點:
" SELECT * FROM DOG WHERE ID = '" + id+ "' "
即我需要兩個'
和"
?
由於我已經加入其中已經表明,引發錯誤時e.printStackTrace()中的查詢嘗試執行。這將解釋返回的空列表? – java123999
接受的答案,因爲它有助於解決我的問題。我的代碼拋出了一個我無視的錯誤。錯誤是我的數據庫更新腳本沒有運行,所以Hibernate正在尋找一個尚未存在的列。 – java123999