scala lift record squeryl

scala - HowTo: Campo personalizado en Lift-Record-Squeryl



(1)

está implementando su lógica de validación incorrectamente. La forma correcta de validar un campo de registro es anular

def validations: List[ValidationFunction]

donde ValidationFunction es un alias de tipo

type ValidationFunction = ValueType => List[FieldError]

y en su caso ValueType == String.

El siguiente problema es tu rasgo de dominio. Debido a que su llamada para validar está incorporada en la definición de la clase, se invocará cuando se construya su campo.

Estoy intentando hacer un EnumListField en Lift / Record / Squeryl, similar a MappedEnumList en LiftMapper . El tipo de almacenamiento debe ser Long / BIGINT. Entiendo que si defino:

def classOfPersistentField = classOf[Long]

Entonces Squeryl sabrá que debería crear una columna BIGINT. Y sé que usa setFromAny() para establecer el valor, pasando en el Largo. La única pieza que no entiendo es:

¿Cómo leerá el valor del campo? Si usa valueBox , obtendrá un Seq[Enum#Value] y no sabrá cómo convertirlo en Long.

¿Cómo le digo a Squeryl que convierta mi Seq[Enum#Value] a Long, o defina un "getter" que devuelva Long, y que no entre en conflicto con el (los) getter (es) "normal" (s)?