gpt4 book ai didi

hibernate - grails (GORM)/hibernate 中的多对多链接表

转载 作者:行者123 更新时间:2023-12-04 07:41:47 25 4
gpt4 key购买 nike

我在玩 Grails 并且发现 ORM 的东西很乏味,因为我不完全理解我在域类方面所做的事情。我希望有人能让我回到正轨

考虑以下

测试工作 一:多作业中使用的硬件 许多:一个 物理硬件

...这类似于在大学 DB 示例中看到的经典 Order、OrderLine、Product 场景

我创建了以下域类

class Job
{
String jobName
String jobDescription
}

class HardwareOnJob
{
static hasMany = [ jobs:Job, physicalHardware:PhysicalHardware ]
static belongsTo = Job

String role
}

class PhysicalHardware
{
String assetName
String model
String os
}

我需要问的问题是为什么 Grails 在我的数据库中为我创建了两个额外的表,而不是使用我定义的链接实体/域类。例如,Grails 在数据库中创建 hardware_on_job_job 和 hardware_on_job_physical_hardware。

使用脚手架 Controller ,我可以输入一些硬件,输入作业,然后输入将两者链接在一起。我的问题是为什么要创建这两个额外的表,而不是使用我指定的域对象 (HardwareOnJob)。

任何帮助/指导都会非常感谢,因为它会疯狂地看着这个并尝试新事物。顺便说一句,我在使用 grails 1.2.1 版

最佳答案

看看 joinTable 关键字:

Customizes the join table used for undirectional one-to-many, many-to-many and primitive collection types



以下是用户指南中的示例:
class Book {
String title
static belongsTo = Author
static hasMany = [authors:Author]

static mapping = {
authors joinTable:[name:"mm_author_books", key:'mm_book_id' ]
}
}
class Author {
String name
static hasMany = [books:Book]

static mapping = {
books joinTable:[name:"mm_author_books", key:'mm_author_id']
}

}

关于hibernate - grails (GORM)/hibernate 中的多对多链接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2238807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com