Estoy tratando de hacer un EnumListFielden Lift / Record / Squeryl, similar a MappedEnumListin 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