Mysql 在Micronaut作业中保存GORM实体时,文本字段引发DataIntegrityViolationException。。。数据截断:数据对列太长
我试图在Micronaut项目作业中保存GORM实体: 实体:Mysql 在Micronaut作业中保存GORM实体时,文本字段引发DataIntegrityViolationException。。。数据截断:数据对列太长,mysql,hibernate,groovy,gorm,micronaut,Mysql,Hibernate,Groovy,Gorm,Micronaut,我试图在Micronaut项目作业中保存GORM实体: 实体: @Entity class OutputProcess extends Process implements Serializable{ static hasMany = [ rows: StatusRow ] static mapping = { content type: 'text' info type: 'text' r
@Entity
class OutputProcess extends Process implements Serializable{
static hasMany = [
rows: StatusRow
]
static mapping = {
content type: 'text'
info type: 'text'
rows lazy: false, cascade: 'all-delete-orphan'
}
static constraints = {
target nullable: false
status nullable: false
content nullable: false
contentId nullable: true
info nullable: true
}
}
class Process extends DomainBase{
String target
ProcessStatus status
String info
String content
Long contentId
}
class DomainBase {
Date dateCreated = new Date()
Date lastUpdated = new Date()
String createdBy = "system"
String updatedBy = "system"
}
调用堆栈:
@Transactional
@Singleton
@Slf4j
class WorkerJob{
@Inject ProcessService processService
@Scheduled(fixedDelay = "600s", initialDelay = "60s")
void processPoints(){
// ...
processService.updateProcessList(outputProcessList)
}
}
@Service(OutputProcess)
class ProcessService{
List<OutputProcess> updateProcessList(List<OutputProcess> outputProcessList) {
for ( OutputProcess outputProcess : outputProcessList ){
outputProcess.markDirty()
outputProcess.save(flush: true, failOnError:true)
}
return outputProcessList
}
}
错误:
org.springframework.dao.DataIntegrityViolationException:休眠操作:无法
执行语句;SQL[n/a];数据截断:第1行“info”列的数据太长;
嵌套的异常是com.mysql.jdbc.MysqlDataTruncation:数据截断:数据太长,无法访问
第1行的“信息”列
我尝试了许多保存方法,但它们都给出了相同的错误。我犯了一个错误,因为StatusRow实体的“行”中有一个名为“info”的列,但没有键入“text”
info longtext NULL