es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué HSQL no soporta la función de conteo en un proyecto de Spring Batch?

Soy nuevo en SpringBatch y HSQL, simplemente creo una aplicación. Quiero seleccionar todas las filas de la tabla, por lo que escribo una consulta personalizada utilizando EntityManager, pero cuando uso COUNT(*), y paso el símbolo de asterisco dentro de la función count, me muestra un error como este:

, ALL, DISTINCT o se esperaba un identificador, se obtuvo ‘*’

¿Cómo puedo usar el símbolo * dentro de la función Count en HSQL?

Aquí están los detalles de mi consulta:
JobCompleteNotificationListner.kt

package com.nilmani.privatecricketleague.data

import com.nilmani.privatecricketleague.model.Team
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.batch.core.BatchStatus
import org.springframework.batch.core.JobExecution
import org.springframework.batch.core.listener.JobExecutionListenerSupport
import java.util.*
import javax.persistence.EntityManager
import javax.persistence.Transient
import kotlin.collections.HashMap

class JobCompleteNotificationListner : JobExecutionListenerSupport {
    val log:Logger = LoggerFactory.getLogger(JobCompleteNotificationListner::class.java)
    val em:EntityManager

    constructor(em:EntityManager){this.em= em}

    @Transient
    override fun afterJob(jobExcution:JobExecution){
        if (jobExcution.status == BatchStatus.COMPLETED){
            log.info("Job finished Time to verify the result")

            val teamData:Map<string,team> = HashMap()
            em.createQuery("SELECT m.team1 , COUNT(*) FROM match m GROUP BY m.team1",Objects::class.java)
        }
    }

}

Obtengo un error en la siguiente línea:
em.createQuery("SELECT m.team1 , COUNT(*) FROM match m GROUP BY m.team1",Objects::class.java)</string,team>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para usar el símbolo * dentro de la función COUNT en HSQL, debes utilizar COUNT(1) en su lugar.

    En tu consulta, reemplaza COUNT(*) con COUNT(1) como se muestra a continuación:

    em.createQuery("SELECT m.team1, COUNT(1) FROM match m GROUP BY m.team1", Objects::class.java)
    

    Esto debería resolver el error que estás experimentando.

Comments are closed.