STR()函數的使用不當有了這個的HQL查詢:在HQL
SELECT DISTINCT fs FROM FileStatus fs WHERE UPPER(STR(fs.filePath)) LIKE :FILE_PATH
我得到:
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:74)
,並與我FILE_PATH
命名參數,我已在地圖中的以下內容:
paramMap.put("FILE_PATH", "%PATHNAME%");
我不知道爲什麼會發生這種情況。如果我在文件路徑中使用一個數字,比如paramMap.put("FILE_PATH", "%23%");
,它會工作得很好,讓事情變得更加混亂(或者它可能會幫助所有人)。
將參數映射與查詢一起傳遞到DAO.read()方法中。休眠處理休息。類似這樣的:
fileStatusDao.read(query, parameterMap);
在此先感謝您的幫助。
您能否介紹一下如何使用HQL以及如何設置參數? – mhshams 2010-08-20 18:56:02
是不是JPQL查詢,而不是HQL(看例外)? – axtavt 2010-08-20 19:10:50
@axtavt:唔......不完全確定。我知道使用hibernate,並且正在爲這些hibernate寫這些查詢。 – 2010-08-20 19:18:43