java - Spring Hibernate Jpa 错误 : root cause java. lang.IllegalArgumentException: Unknown parameter position: 1

标签 java spring hibernate jpa

您好,我遇到以下错误。

java.lang.IllegalArgumentException: Unknown parameter position: 1] with root cause java.lang.IllegalArgumentException: Unknown parameter position: 1 at org.hibernate.query.internal.QueryParameterBindingsImpl.getBinding(QueryParameterBindingsImpl.java:240) at org.hibernate.query.internal.AbstractProducedQuery.setParameter(AbstractProducedQuery.java:503) at org.hibernate.query.internal.AbstractProducedQuery.setParameter(AbstractProducedQuery.java:104) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:372) at com.sun.proxy.$Proxy63.setParameter(Unknown Source) at edu.zipcloud.cloudstreetmarket.core.daos.HistoricalIndexRepositoryImpl.findLastHistoric(HistoricalIndexRepositoryImpl.java:37) at edu.zipcloud.cloudstreetmarket.core.daos.HistoricalIndexRepositoryImpl.findLastIntraDay(HistoricalIndexRepositoryImpl.java:31) at edu.zipcloud.cloudstreetmarket.core.services.MarketServiceImpl.getLastDayIndexActivity(MarketServiceImpl.java:41) at edu.zipcloud.cloudstreetmarket.portal.controllers.DefaultController.fallBack(DefaultController.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

内部方法 findLastHistoric(HistoricalIndexRepositoryImpl.java:37)

类(class):

@Repository
public class HistoricalIndexRepositoryImpl implements HistoricalIndexRepository{

    @PersistenceContext 
    private EntityManager em;

    @Override
    public Iterable<HistoricalIndex> findIntraDay(String code, Date of) {
        TypedQuery<HistoricalIndex> sqlQuery = em.createQuery("from HistoricalIndex h where h.index.code = ? and h.fromDate >= ? and h.toDate <= ? ORDER BY h.toDate asc", HistoricalIndex.class);
        sqlQuery.setParameter(1, code);
        sqlQuery.setParameter(2, DateUtil.getStartOfDay(of));
        sqlQuery.setParameter(3, DateUtil.getEndOfDay(of));
        return sqlQuery.getResultList();
    }

    @Override
    public Iterable<HistoricalIndex> findLastIntraDay(String code) {
        return findIntraDay(code, findLastHistoric(code).getToDate());
    }

    @Override
    public HistoricalIndex findLastHistoric(String code){
        TypedQuery<HistoricalIndex> sqlQuery = em.createQuery("from HistoricalIndex h where h.index.code = ? ORDER BY h.toDate desc", HistoricalIndex.class);
        sqlQuery.setParameter(1, code);
        return sqlQuery.setMaxResults(1).getSingleResult();
    }
}

请帮我解决这个错误。如果您需要其他信息,请告诉我。

问候。

最佳答案

这个怎么样?

    TypedQuery<HistoricalIndex> sqlQuery = em.createQuery("from HistoricalIndex h where h.index.code = ?1 ORDER BY h.toDate desc", HistoricalIndex.class);

检查 here第 5.3.2 节。查询创建

关于java - Spring Hibernate Jpa 错误 : root cause java. lang.IllegalArgumentException: Unknown parameter position: 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45436500/

相关文章:

java - 将树作为子树添加到不同类型的树

java - 如何存储 Java KeyStore 密码?

java - 无法解析 org.springframework.security.core.GrantedAuthority,即使它已下载/显示在项目库下

java - 来自不同 tomcat webapps 的冲突 spring bean

java - 未触发 JPopupMenu 操作

java - 运行测试时无法使用 spring-boot-starter-web 依赖项

spring - 无法在 Spring Boot 中 Autowiring @Repository 注释接口(interface)

java - 如何创建 blob/blob?

hibernate - Grails/GORM:避免在嵌套保存调用上发生ConcurrentModificationException

java - 在 hibernate 工具 hbm2ddl 中支持 @ElementCollection