此代码无法正常工作:

getHibernateTemplate()
                .find("from elephant.model.Setup s where s.settingName = ?",setupName);

错误:位置超出了已声明的序数参数数量。 请记住,序数参数基于1! 位置:1; 嵌套异常是org.hibernate.QueryParameterException:位置超出声明的序数参数的数量。 请记住,序数参数基于1! 位置:1

如果我将代码更改为:

getHibernateTemplate()
                .find("from elephant.model.Setup s where s.settingName = :setupName",setupName);

我有同样的错误。 我该如何解决?

后来....

我将更改查询,如下所示:

.find("from elephant.model.Setup s where s.settingName = \"AutoAccessControl\"")

现在我们还有其他错误:

2563 [main] WARN org.hibernate.hql.QuerySplitter - no persistent classes found for query class: from elephant.model.Setup s where s.settingName = "AutoAccessControl"

我的applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                           http://www.springframework.org/schema/tx
                           http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="jdbc.properties" />
    </bean>

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:/hibernate.cfg.xml" />
        <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            </props>
        </property>
    </bean>

    <tx:annotation-driven transaction-manager="txManager" />

    <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <!-- Office -->
    <bean id="OfficeDao" class="elephant.dao.impl.OfficeDao">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="OfficeService" class="elephant.service.impl.OfficeService">
        <property name="dao" ref="OfficeDao" />
    </bean>
    <!-- Office -->
    <!-- XMLFile -->
    <bean id="XMLFileDao" class="elephant.dao.impl.XMLFileDao">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="XMLFileService" class="elephant.service.impl.XMLFileService">
        <property name="dao" ref="XMLFileDao" />
    </bean>
    <!-- XMLFile -->
    <!-- AppointmentCategory -->
    <bean id="AppointmentCategoryDao" class="elephant.dao.impl.AppointmentCategoryDao">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="AppointmentCategoryService" class="elephant.service.impl.AppointmentCategoryService">
        <property name="dao" ref="AppointmentCategoryDao" />
    </bean>
    <!-- AppointmentCategory -->
    <!-- Setup -->
    <bean id="SetupDao" class="elephant.dao.impl.SetupDao">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="SetupService" class="elephant.service.impl.SetupService">
        <property name="dao" ref="SetupDao" />
    </bean>
    <!-- Setup -->
</beans>

我的hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.cache.use_second_level_cache">true</property>
        <property name="hibernate.cache.use_query_cache">false</property>
        <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

        <property name="hibernate.transaction.flush_before_completion">true</property>
        <property name="hibernate.transaction.auto_close_session">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <property name="hibernate.use_sql_comments">true</property>
        <property name="hibernate.connection.charSet">true</property>

    </session-factory>
</hibernate-configuration>

我的jdbc.properties

jdbc.driverClassName=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost:5432/hd_test
jdbc.username=musr
jdbc.password=mpwd
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

===============>>#1 票数:0 已采纳

您确定是该查询失败了吗?您可以尝试将查询中的值串联起来进行检查吗?

第一个版本应该工作-第二个版本不能工作-您将需要使用findByNamedParam。

  ask by Aleksey translate from so

未解决问题?本站智能推荐:

1回复

org.hibernate.QueryParameterException:位置超出了已声明的序数参数的数量

登录资料库 @Repository public class LoginRepository { @Autowired private HibernateTemplate hibernateTemplate; public List logDetails(Stude
1回复

org.hibernate.QueryParameterException

我是春天的新手。 我正在尝试通过spring和hibernate对数据库执行add,delete,edit操作。delete和add操作已成功执行,但是当我尝试通过单击edit进行编辑时。 我收到此错误: 完整的堆栈跟踪: 我的jsp:“ user.jsp” 控制器类:
7回复

org.hibernate.QueryParameterException:找不到命名参数

我的项目设置是MySQL DB上的Spring MVC,Hibernate 3.2.x. 收到以下错误: org.hibernate.QueryParameterException:找不到命名参数email 方法#1: 方法#2: 错误: jav
2回复

Hibernate:org.hibernate.QueryParameterException:找不到命名参数

我正在开发一个Spring-MVC应用程序,在该应用程序中我想同时对多个变量运行搜索。 但是代码始终无法为第一个值本身设置参数。 我不知道为什么。 你能帮忙的话,我会很高兴。 名单学生: sb.toString()的输出: 错误日志: 我在做什么错的家伙。
3回复

org.hibernate.QueryParameterException:找不到命名参数[userId]

我需要帮助,但遇到上述异常。 我要去哪里错了? 在从类到表的映射中,我使用了以下内容: 下面是我编写查询的类。 实体
3回复

org.hibernate.QueryParameterException:找不到命名参数[templateId]

请找到我使用过的代码。 HQL下面的查询失败说: 无法找到命名参数[templateId] 但是templateId存在于我的模型类中。 请帮助解决出现此类错误的问题或可能的原因: 模型文件 请帮忙解决我的问题
1回复

错误org.hibernate.QueryParameterException:无法找到命名参数[i]

我尝试在代码下运行,但出现错误。 文件Login.java 堆栈跟踪:
3回复

Spring 3.1 Hibernate 4继承异常[无法强制转换为org.hibernate.mapping.RootClass]

嗨,我刚刚开始使用Spring,使用Hibernate4和maven。 基本上我的类层次结构是从MicroTask扩展的HUmanMicroTask。 将来可能会有其他几个类从MicroTask扩展。 我试图为每个具体类创建一个表,这是使用spring3和hibernate 4启动和运行的
3回复

嵌套的异常是org.hibernate.exception.SQLGrammarException:无法提取ResultSet Hibernate + SpringMVC

我正在尝试从数据库中获取记录,并且出现上述错误 这是我的课程,带有适当的吸气剂和吸气剂 我还使用以下配置创建了数据库并向其中插入了数据 这是完整的堆栈跟踪 请问我可能在Hibernate上使用Spring MVC新增了什么错误 User.java的完整代码
1回复

org.hibernate.PersistentObjectException与Spring,Maven和Hibernate组合

我是新来的,希望能为我的问题找到解决方案。 我有一个异常org.hibernate.PersistentObjectException与将数据保存在ManyToMany关系中。 我使用Spring框架和Maven。 这是我对休眠的注释 application-context.x