¿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:
¿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>
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:
Esto debería resolver el error que estás experimentando.