繁体   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