Tras un cuarto de hora dándole vueltas a por qué no me Slick daba las opciones para filtrar una columna Option, escribiré un pequeño post sobre el tema.

Situación inicial

Mi problema parte de que tengo la siguiente definición de esquema. Nótese que para decirle a Slick que tiene que mapear bar como Option, lo hacía mediante bar.?

En el DAO quiero filtrar las filas para las cual bar no está vacío, es decir, isEmpty. Con esa definición de esquema inicial, los métodos isNull & isNotNull del trait ColumnExtensionMethods están deprecated. Y como ya sabemos todos, no es buena idea utilizar métodos deprecated, ya que tarde o temprano estos serán eliminados y nos complicarán las actualizaciones a nuevas versiones.

isEmpty & isDefined

Mirando más abajo en el código, descubro que los métodos que me interesan, isEmpty & isDefined, están dentro de la clase AnyOptionExtensionMethods. Para poder usarlos, simplemente actualizad la definición de esquema utilizando column[Option[String]] en lugar de column[String]. Fíjate que en el mapeo ya no utilizo .?

Espero que este post te sea de ayuda para ahorrar tiempo o para aprender algo nuevo que te ayude a mejorar. Si te ha gustado, compártelo y si quieres recibir las actualizaciones en tu bandeja de entrada, ¡suscríbete!