Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate grails与遗留数据库的连接表_Hibernate_Grails_Gorm - Fatal编程技术网

Hibernate grails与遗留数据库的连接表

Hibernate grails与遗留数据库的连接表,hibernate,grails,gorm,Hibernate,Grails,Gorm,我想用grails实现一对多表映射。我有一个遗留数据库,无法更改表结构。我已经设置好了所有内容,但我唯一不知道的是如何让grails注意到现有的外键,而不是创建自己的列。我有这样的东西(简化): 作为旁注,我看到grails文档中的joinTable表示“column”是反向列,“key”是外键。文档中的示例没有帮助。我有“Grails在运行”,它说它将提供一个一对多的示例,然后展示一个多对多的示例,不管怎样,它似乎都不是一个完整的示例(缺少一半的模型) 有什么想法吗?我有这个遗留数据库,我将以

我想用grails实现一对多表映射。我有一个遗留数据库,无法更改表结构。我已经设置好了所有内容,但我唯一不知道的是如何让grails注意到现有的外键,而不是创建自己的列。我有这样的东西(简化):

作为旁注,我看到grails文档中的joinTable表示“column”是反向列,“key”是外键。文档中的示例没有帮助。我有“Grails在运行”,它说它将提供一个一对多的示例,然后展示一个多对多的示例,不管怎样,它似乎都不是一个完整的示例(缺少一半的模型)


有什么想法吗?我有这个遗留数据库,我将以只读方式使用它。我只是希望O/R映射程序能够很好地将所有内容连接在一起。

客户域对象中的joinTable应该使用column,而不是key:

notes joinTable:[name:"CustomerNotes",column:"CustomerListID"]

另外,name:应该是join表的名称,而不是Note表的名称。

我的问题中有一个输入错误(正如你指出的,我的模型是不正确的。它仍然不能像现在所说的那样工作。我不理解你最后一部分关于“名称:应该是联接表的名称”。customer_notes不是联接表吗?我对你的域模型有点困惑。我对你的域的理解,你需要三个表:customers、customer_notes和第三个jo在表中。您的域表不需要域对象。您的意思是我的联接表不需要域对象吗?事实证明,没有第三个表。customer notes中的主键是NoteID,它有一个外键CustomerListID。因此,您的意思可能是我不需要customer\u notes中的列CustomerListID,因为这是一个grails将自动创建。如果是这样的话,这很好。但问题是,无论我做什么,grails都会创建customer\u id作为外键列。根据您对表的描述,您没有联接表。您只需要指定外键的名称。将联接表行替换为:notes:column:customer\u list\u id。
notes joinTable:[name:"CustomerNotes",column:"CustomerListID"]