Я столкнулся с очень необычным исключением, связанным с объектом JPA Query с гибернацией, при работе с Spring Frame, я нахожу это странным по трем причинам
- Я уверен, что названный параметр существует и не подделан.
- Это работает в большинстве наших условий.
- Query.setParameter () не выдает исключение, а скорее из какого-то перехватчика из пружины.
У кого-нибудь есть идея?
SQL-сборка с параметром:
sql.append(" AND table2.entry_date >= :start_date AND table2.entry_date <= :end_date ");
Код, в котором задан параметр, и кажется, что он в порядке.
Query query = entityManager.createNativeQuery(sql.toString(), "XXXXXXXXXXX")
.unwrap(Query.class);
query.setParameter("time_zone", filter.getTimeZone());
query.setParameter("start_date", filter.getStartDate().toLocalDateTime(), TemporalType.TIMESTAMP);
Исключение:
org.springframework.dao.InvalidDataAccessApiUsageException: Unknown parameter name : start_date; nested exception is java.lang.IllegalArgumentException: Unknown parameter name : start_date
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:367)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:225)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:527)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at com.redacted.redacted.redacted.redacted.redacted.redacted.redacted.RedactedRepositoryImpl$$EnhancerBySpringCGLIB$$53270333.retrieveReportSlice(<generated>)