Spring org.hibernate.hql.internal.ast.QueryTranslatorImpl.docomFile(QueryTranslatorImpl.java:183) 在 org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136) 在 org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:105) 在 org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:80) 在 org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168) 在 org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:221) 在 org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:199) 在 org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1735) 位于org.java.dao.HibernateDao.getCircleCount(HibernateDao.java:29) org.java.Main.HibernateDemo.Main(HibernateDemo.java:16)
Packagestoscan属性应指向实体Spring org.hibernate.hql.internal.ast.QueryTranslatorImpl.docomFile(QueryTranslatorImpl.java:183) 在 org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136) 在 org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:105) 在 org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:80) 在 org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168) 在 org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:221) 在 org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:199) 在 org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1735) 位于org.java.dao.HibernateDao.getCircleCount(HibernateDao.java:29) org.java.Main.HibernateDemo.Main(HibernateDemo.java:16),spring,Spring,Packagestoscan属性应指向实体 这里,org.java.spring.dataModel您编写的是HQL查询,而不是SQL查询。语法类似,但在HQL查询中使用映射类型。在这种情况下,由于映射类型显然是Circle,请尝试以下操作: 从圆圈c中选择计数(c) 如例外情况所示,circle不是映射类型,这是有意义的。我的答案可能早就应该给出了,但对于以后的参考,这可能会起作用: 我们必须改变一些事情,现在我们开始: 第一: <bean id="dataSource" class="
这里,org.java.spring.dataModel您编写的是HQL查询,而不是SQL查询。语法类似,但在HQL查询中使用映射类型。在这种情况下,由于映射类型显然是
Circle
,请尝试以下操作:
从圆圈c中选择计数(c)
如例外情况所示,
circle
不是映射类型,这是有意义的。我的答案可能早就应该给出了,但对于以后的参考,这可能会起作用:
我们必须改变一些事情,现在我们开始:
第一:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.h2.Driver"/>
<property name="username" value="postgres"></property>
<property name="password" value="****"></property>
这是我的圆,它只是一个Pojo.public类圆{public int getId(){return id;}public void setId(int id){this.id=id;}public String getName(){return name;}public void setName(String name){this.name=name;}private int id;private String String name;public圆(int-circleId,String-circleName){setId(id);setName(circleName);}public Circle(){//TODO自动生成构造函数存根}您是对的,但在解决此问题后:我现在得到此错误。创建名为“hibernateDao”的bean时出错:自动连线依赖项的注入失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:无法自动连线字段:private org.hibernate.SessionFactory org.java.dao.hibernateDao.SessionFactory;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为“sessionFactory”的bean时出错,该名称在类路径资源[spring.xml]中定义:是的,听起来确实是这样。您会遇到同样的异常吗?如果查询中没有
圆
消息,而查询中没有圆
,那将非常奇怪。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.h2.Driver"/>
<property name="username" value="postgres"></property>
<property name="password" value="****"></property>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="org.java.dao" />
<property name="hibernateProperties">
<props>
<prop key="dialect">org.hibernate.dialect.H2Dialect</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
select count(c) from Circle c