Grails 도메인 클래스, 문자열 필드 TEXT 및 LONGTEXT


Answers

sqlType을 사용하면보다 세밀한 제약 조건을 처리 할 수 ​​있습니다.

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
     }
}

SQL 형을 사용하면 (자), 실제의 BLOB 형 (바이트 형이 디폴트로 tinyBlob에 링크되고있다)

자세한 매핑은 https://grails.github.io/grails-doc/latest/ref/Database%20Mapping/column.html 자세히 설명합니다.

Question

Grails 도메인 클래스에서 String 필드에 대한 제약 조건을 설정하여 MySQL 열 유형이 TEXT 또는 LONGTEXT가되도록하려면 어떻게해야합니까?

지금까지 최선의 방법은 제약 조건의 크기를 설정하는 것입니다.

myTextField(size:0..65535)

결과는 TEXT입니다.

myTextField(size:0..2147483646)

LONGTEXT (2147483646 = 2 ^ 32 / 2-1-1)의 결과

크기를 지정하는 더 깨끗한 방법이 있습니까? 기본적으로 크기 값을 하드 코드하지 않고도 TEXT 또는 LONGTEXT의 전체 범위를 원합니다.




Links



Tags

grails