簡體   English   中英

執行查詢時休眠異常

[英]Hibernate Exception while executing query

以下是我的代碼段:

ApplicationContext ctx = new ClassPathXmlApplicationContext(
                    "classpath*:META-INF/spring/applicationContext*.xml");
            JpaTransactionManager jpatm = (JpaTransactionManager) ctx
                    .getBean("transactionManager");
            EntityManager em = jpatm.getEntityManagerFactory()
                    .createEntityManager();
String sqlQuery = "SELECT suc FROM SubUsrCont suc, UDMap uDMap WHERE suc.userid = uDMap.userid AND uDMap.parentuserid = :parentuserid";
TypedQuery<SubUsrCont> query = (TypedQuery<SubUsrCont>) em.createQuery(sqlQuery, SubUsrCont.class);
query.setParameter("parentuserid", parentid);
ArrayList<SubUsrCont> listContent = (ArrayList<SubUsrCont>) query.getResultList();

但是,無論何時執行,我都會收到以下錯誤:

[http-8080-1] ERROR org.hibernate.hql.PARSER - line 1:92: expecting OPEN, found '.'

有人可以幫忙嗎???

好吧,我找到了它並成功地對其進行了測試。 這是由於我的POJO軟件包名稱。 以前是in.myproject.myname 我將其更改為com.myproject.myname HQL 當時正在為SQL關鍵字,並一直在尋找OPEN“(”。

為什么在em.createQuery()使用本機SQL查詢? 這將不起作用,因為HQL不能具有SELECT ,此外,您沒有設置參數:parentuserid的值。

String sqlQuery = "FROM SubUsrCont suc, UDMap uDMap WHERE suc.userid = uDMap.userid AND uDMap.parentuserid = :parentuserid";
TypedQuery<SubUsrCont> query = (TypedQuery<SubUsrCont>) em.createQuery(sqlQuery, SubUsrCont.class);
query.setParameter("parentuserid", <PARENT USER ID TO BE SEARCHED>);

試試看,看看

如果要執行SQL,請使用createNativeQuery 也嘗試“選擇成功。* ...

你也沒有設置參數:parentuserid

使用query setParameter("parentuserid",someValue)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM