Estoy tratando de hacer un EnumListField
en Lift / Record / Squeryl, similar a MappedEnumList
in LiftMapper
. El tipo de almacenamiento debe ser Long / BIGINT. Entiendo que si defino:
def classOfPersistentField = classOf[Long]
Entonces Squeryl sabrá que debe crear una columna BIGINT. Y sé que se usa setFromAny()
para establecer el valor, pasando Long. La única pieza que no entiendo es:
¿Cómo leerá el valor del campo? Si lo usa valueBox
, obtendrá un Seq[Enum#Value]
, y no sabrá cómo convertirlo en un Long.
¿Cómo le digo a Squeryl que convierta my Seq[Enum#Value]
a un Long, o defina un "getter" que devuelva un Long y que no entre en conflicto con los getter (s) "normales"?
Respuestas:
está implementando su lógica de validación incorrectamente. La forma correcta de validar un campo de registro es anular
donde ValidationFunction es un alias de tipo
y en su caso ValueType == String.
El siguiente problema es el rasgo de su dominio. Debido a que su llamada para validar está incluida en la definición de la clase, se llamará cuando se construya su campo.
fuente