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 )