(JPA / JPQL) как запросить TIMESTAMPDIFF в функции now ()? - PullRequest
0 голосов
/ 24 апреля 2020

как использовать этот запрос? помогите мне

проблема, что max (FUNCTION ('TIMESTAMPDIFF', 'SECOND', startAt, endAt)))

startAt и endAt - это LocalDateTime!

@Query(nativeQuery = false, value = """
  select new com.entity.repository.MyDto(category, max(FUNCTION('TIMESTAMPDIFF', 'SECOND', 
  sendStartAt, sendEndAt))) 
  from ReportHistory where eventAt >= :startAt
""")
fun findAllByStatistic(startAt: LocalDateTime): List<MyDto>?

data class MyDto(
        val category : String ?= null,
        val max : Long ?= null
)

Вызвано by: java .lang.IllegalArgumentException: проверка не удалась для запроса метода publi c abstract java .util.stream.Stream com.entity.repository.MyDto.findAllByStatisti c (java .time.LocalDateTime )! в org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery (SimpleJpaQuery. java: 93) в org.springframework.data.jpa.repository.query.SimpleJpaQuery. (SimpleJpaQuery. 63): 101) *. org.springframework.data.jpa.repository.query.JpaQueryFactory.fromMethodWithQueryString (JpaQueryFactory. java: 76) в org.springframework.data.jpa.repository.query.JpaQueryFactory. org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy $ DeclaredQueryLookupStrategy.resolveQuery (JpaQueryLookupStrategy java:. 139) в org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy $ CreateIfNotFoundQueryLookupStrategy.resolveQuery (JpaQueryLookupStrategy java. 206 sitoryFactorySupport. java: 566) по адресу org.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor.lambda $ mapMethodsToQuery $ 1 (RepositoryFactorySupport): 10 чел. .accept (ReferencePipeline. java: 193) в java .util.Iterator.forEachRemaining (Iterator. java: 116) в java .util.Collections $ UnmodifiableCollection $ 1.forEachRemaining (Collections. java: 1049) в java .util.Spliterators $ IteratorSpliterator.forEachRemaining (Spliterators. java: 1801) в java .util.stream.AbstractPipeline.copyInto (AbstractPipeline. java: 481) в java .util .stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline. java: 471) в java .util.stream.ReduceOps $ ReduceOp.evaluateSequential (ReduceOps. java: 708) в java .util.stream.AbstractPipeline.eate (AbstractPipeline. java: 234) в java .util.stream.ReferencePipeline.collect (ReferencePipeline. java: 499) в org.springframework.data.repository.core.support.RepositoryFactory. Поддержите $ QueryExecutorMethodInterceptor.mapMethodsToQuery (RepositoryFactorySupport. java: 561) в org.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInpositor 50-го класса. .Optional.map (Необязательно. java: 215) в org.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor. (RepositoryFactorySupport. java: 551) в org.sworkory.rereme. support.RepositoryFactorySupport.getRepository (RepositoryFactorySupport. java: 324) по адресу org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda $ afterPropertiesSet $ ​​5 (RepositoryFata.pp. .Lazy.getNullable (Lazy. java: 211) в org.springframework.data.util.Lazy.get (Lazy. java: 94) в org.springframework.data.repository.core.support.RepositoryFactoryBeanSupportSafter (RepositoryFactoryBeanSupport. java: 300) в org.sp ringframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet (JpaRepositoryFactoryBean. java: 119) в org.springframework.beans.factory.support. beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory. java: 1741) ... 30 общих кадров опущено Вызывается: java .lang.NullPointerException: пусто в org.hibernate.hql.internal.NameGenerator.generateColumnNames (NameGenerator. java: 27) в org.hibernate.hql.internal.ast.util.SessionFactoryHelper.gamesrate ( SessionFactoryHelper. java: 434) в org.hibernate.hql.internal.ast.tree.SelectClause.initializeColumnNames (SelectClause. java: 270) в org.hibernate.hql.internal.ast.tree.SelectClause.finishInitization SelectClause. java: 260) по адресу org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause (SelectClause. java: 255) по адресу org.hibernate.hql.internal.ast.HqlSqlWalker.useWl. java: 1018. 677) в org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement (HqlSqlBaseWalker. java: 313) в org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement (HqlSq. 64 *: 261) в org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze (QueryTranslatorImpl. java: 271) в org.hibernate.hql.internal.ast.QueryTranslatorImpl.do * Compile (QueryTranslator *66): ) в org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile (QueryTranslatorImpl. java: 143) в org.hibernate.engine.query.spi.HQLQueryPlan. (HQLQueryPlan. java: 119) в org.h .engine.query.spi.HQLQueryPlan. (HQLQueryPlan. java: 80) в org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan (QueryPlanCache. java: 153) в org.hibernate.inract.Session. getQueryPlan (AbstractSharedSessionContract. java: 595) в org.hibernate.internal.AbstractSharedSessionContract.createQuery (AbstractSharedSessionContract. java: 704) в org.hibernate.internal.AbstractSessionImpl. 235). .reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 62) в sun.reflect .DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl. java: 43) в java .lang.reflect.Method.invoke (Метод. java: 498) в org.springframework.orm.jpa.ExtendedEntityManagerManagerManagerManagerManagerManagerManagerManagerManagerManagerManagerManager . java: 350) в com.sun.proxy. $ Proxy112.createQuery (неизвестный источник) в org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery (SimpleJpaQuery. java: 87) ... 59 общих кадров пропущено

...