scala - ¿Cómo CUENTA(*) en Slick 2.0?
slick-2.0 (3)
Acabo de tener este mismo problema al actualizar a Slick 2.0. Olvido dónde vive el método exacto, pero el .run
genérico parece funcionar para mí, es decir,
coffees.length.run
Según la documentación de Slick 2.0 , para obtener el recuento de filas en una tabla:
val q1 = coffees.length
// compiles to SQL (simplified):
// select count(1) from "COFFEES"
Sin embargo, resulta que coffees.length
es de tipo Column[Int]
.
¿Cómo se ejecuta una consulta y se obtiene el valor?
Intente coffees.length.first
debe ejecutar y devolver Int
Lo sentimos, de hecho, en el slick 1.0 hubo un primer método para hacerlo, en Slick 2.0 se deshacen de él en favor de una run
más genérica.
La función para ejecutar la consulta es
coffees.length.run
StaticQuery.queryNA[Int]("select count(*) from /"" + TableName + "/"").first
Las cotizaciones son necesarias si el nombre de su tabla no es mayúscula.