Mysql Grails实体更改我的表并创建新的

Mysql Grails实体更改我的表并创建新的,mysql,grails,entity,Mysql,Grails,Entity,我有两个表,一对多 我在此表上创建了两个实体。但当我尝试在第三个表中创建数据并在现有表中添加新字段时 我的桌子 我的实体 课堂答案{ 整数id 字符串答案 布尔不正确 静态belongsTo=问题 静态约束={ } } 课堂提问{ 整数id 字符串问题 列出答案 静态hasMany=[答案:答案] 静态约束={ } } 使用grails后,mysql表中的更改 CREATE TABLE`question`( `ID`INT(11)非空自动增量, `问题'VARCHAR(200)不为空, `版

我有两个表,一对多

我在此表上创建了两个实体。但当我尝试在第三个表中创建数据并在现有表中添加新字段时

我的桌子

我的实体

课堂答案{
整数id
字符串答案
布尔不正确
静态belongsTo=问题
静态约束={
}
}
课堂提问{
整数id
字符串问题
列出答案
静态hasMany=[答案:答案]
静态约束={
}
}
使用grails后,mysql表中的更改

CREATE TABLE`question`(
`ID`INT(11)非空自动增量,
`问题'VARCHAR(200)不为空,
`版本'BIGINT(20)不为空,
主键(`ID`)
)
校对class='utf8\u概述\u ci'
引擎=InnoDB
自动增量=15;
创建表“应答”(
`ID`INT(10)非空自动增量,
`问题ID`INT(11)不为空,
`回答“VARCHAR(50)不为空,
`IsCorrect`TINYINT(1)空默认值'0',
`版本'BIGINT(20)不为空,
`位(1)不为空,
主键(`ID`),
索引'FK_Question'('QuestionID'),
约束'FK_Question'外键('QuestionID')引用'Question'('ID`)
)
校对class='utf8\u概述\u ci'
引擎=InnoDB
自动增量=32;
创建表“问题和答案”(
`问题_答案_id`INT(11)NULL默认为NULL,
`答案_id`INT(11)NULL默认为NULL,
`答案_idx`INT(11)NULL默认为NULL,
索引“FK561DF2371111E9”(“答案id”),
约束'fk561df2371111171e9'外键('answer_id`)引用'answer`('id`)
)
校对class='utf8\u概述\u ci'
引擎=InnoDB;

那么,如何解决这个问题呢?为什么grails会改变我的表格

问题在于您声明:

static belongsTo = Question
但这使得关系是单向的,因为您无法查询此belongsTo。在这种情况下,Grails将使用一个连接表。如果不需要联接表,则需要通过声明以下内容使其双向:

static belongsTo = [question: Question]

更多信息。

声明[问题:问题]后,第三个表没有创建,但在表answer中创建新字段时存在一些问题,如上图所示,当尝试从answer获取数据时,由于未处理的异常而导致的get异常:org.hibernate.ObjectNotFoundException:不存在具有给定标识符的行:[ua.home.testknowledge.Question#0]是的,这是帮助我。但为什么实体在我的表中创建新字段,以及如何解决字段的问题。Grails遵循在数据库中转换下划线大小写的惯例。这就是为什么isCorrect变为isu correct的原因。我建议您查看文档,了解数据库映射是如何工作的。要调整你的属性,请检查。是的,真的帮助我。谢谢!
static belongsTo = [question: Question]