此问题类似于this post - 但答案不适用于此处。我目前只在开发中工作,并使用dbCreate: create-drop
url: jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
使用Grails 3.0.11 - GORM似乎无法识别类型:'text'映射。这是我的模特:
package mypackage
class Text extends Object {
String body
Media image
boolean textFirst = true
static constraints = {
image nullable:true
}
static mapping = {
body type: 'text'
}
}
引导一些数据,我被抛出这个错误:
ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Value too long for column "BODY VARCHAR(255)": "'<p>some copy... (1222)"; SQL statement:
insert into object (id, date_created, description, heading, last_updated, title, two_col, body, image_id, text_first, class) values (null, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'mypackage.Text')
我的理解是mapping
到type:text
应该创建CLOB类型变量,它自动不会被限制为最大大小255.
grails clean
- 申请已清理,但未成功grails clean-all
- 这不是Grails 3+方法(不起作用)grails clean --refresh-dependencies
- 清理,但没有成功static constraints
和static mapping
的顺序,但没有成功body maxSize: 5000
,没有成功grails url-mappings-report
奇怪地完成了Bootstrap而没有抛出错误。
这可能与继承有关 - Text Class当前扩展了Object。按如下所示更改Text模型,Bootstrapping成功。有人能为我提供一些见解吗?
package mypackage
class Text {
String body
Media image
boolean textFirst = true
static constraints = {
image nullable:true
}
static mapping = {
body type: 'text'
}
}
这是mypackage.Object:
package mypackage
class Object {
String title
String heading
String description
Date dateCreated
Date lastUpdated
boolean twoCol = false
static constraints = {
heading nullable: true, maxSize: 3000
description nullable: true, maxSize: 500
}
static mapping = {
version false
}
}
将body
容器重命名为content
,grails clean
,现在似乎正在运行。仍然不确定发生了什么,可能是某种缓存问题(?)......
任何帮助都很棒!!谢谢大家:))
答案 0 :(得分:0)
请试试这个
static mapping = {
body sqlType: 'text'
}
答案 1 :(得分:-1)
请试试这个
静态映射= { 体型:'文字' }