example grails

example - Grails domain class, String field TEXT y LONGTEXT



grails html (2)

El uso de sqlType le permitiría obtener una restricción más fina

Class Foo{ String myTxtAsVarchar String myTxtAsText String myTxtAsLtext static mapping = { myTxtAsVarchar sqlType: ''varchar(255)'' myTxtAsText sqlType: ''text'' myTxtAsLtext sqlType: ''longText'' } /*applying constraint on DB end + on Domain model(scaffolding/Validation)*/ static constraints = { myTxtAsVarchar size: 2..255 myTxtAsText size: 2..15000 } }

El uso de tipo SQL también hizo disponible el tipo de Blob real (tipo de byte vinculado a tinyBlob de forma predeterminada)

más mapeo detallado aquí: https://grails.github.io/grails-doc/latest/ref/Database%20Mapping/column.html

En una clase de dominio de Grails, ¿cómo configuro la restricción para un campo de cadena para que su tipo de columna MySQL sea TEXT o LONGTEXT?

Hasta ahora, mi mejor enfoque es establecer el tamaño de la restricción:

myTextField(size:0..65535)

que resulta en TEXTO

myTextField(size:0..2147483646)

resultados en LONGTEXT (2147483646 = 2 ^ 32/2 - 1 - 1)

¿Hay una forma más clara de especificar el tamaño? Básicamente, quiero el rango completo de TEXT o LONGTEXT sin tener que codificar un montón de valores de tamaño.


Puedes declararlo en el cierre de mapeo de tu clase de dominio:

static mapping = { myTextField type: ''text'' }

(Ver la documentación de ORM DSL )