Java 执行查询时发生休眠异常

Java 执行查询时发生休眠异常,java,hibernate,spring-mvc,hql,Java,Hibernate,Spring Mvc,Hql,以下是我的代码片段: ApplicationContext ctx = new ClassPathXmlApplicationContext( "classpath*:META-INF/spring/applicationContext*.xml"); JpaTransactionManager jpatm = (JpaTransactionManager) ctx .getBean("tra

以下是我的代码片段:

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();

有人能帮忙吗?

为什么在
em.createQuery()中使用本机SQL查询?这将不起作用,因为HQL不能选择
,而且您没有设置参数
: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>);
String sqlQuery=“来自SubUsrCont suc,UDMap UDMap,其中suc.userid=UDMap.userid和UDMap.parentuserid=:parentuserid”;
TypedQuery query=(TypedQuery)em.createQuery(sqlQuery,SubUsrCont.class);
setParameter(“parentuserid”),和;

如果要执行SQL,请尝试此操作并查看,使用
createNativeQuery
。还可以尝试“选择suc.*

另外,您没有设置参数:parentuserid


使用
查询setParameter(“parentuserid”,someValue)

嗯,我找到了它,并成功地测试了它。这是由于我的POJO包名。以前它是.myproject.myname中的。我将它改为com.myproject.myname。HQL将中的作为中的SQL关键字,并正在寻找打开的'(“

@shazin…它不工作了…org.springframework.dao.InvalidDataAccessApiUsageException:org.hibernate.hql.ast.QuerySyntaxException…@StanislavL…它不工作了。但是我知道问题是什么。我已经使用Spring Roo生成了项目。因此,在SubUsrCont POJO的情况下,DB中的实际表名是sub_usr_继续。现在,当我使用createNativeQuery时,它只是简单地将SubUsrCont转换为SubUsrCont。它实际上在数据库中不存在。我得到以下错误:error org.hibernate.util.jdbceptionReporter-表“mydb.SubUsrCont”不存在
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>);