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)?