K2J*_*K2J 4 grails many-to-many hibernate grails-orm ejb-3.0
我正在和Grails玩耍,我发现ORM的东西很乏味,因为我不完全理解我在域类方面做的事情.我希望有人能让我回到正轨
考虑以下
测试工作 一:许多 硬件在工作中使用 很多:一个 物理硬件
......这类似于大学数据库示例中的经典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
}
Run Code Online (Sandbox Code Playgroud)
我需要问的问题是为什么Grails在我的数据库中创建了两个额外的表而不是使用我定义的链接实体/域类.例如,Grails在数据库中创建hardware_on_job_job和hardware_on_job_physical_hardware.
使用脚手架控制器,我可以输入一些硬件,输入一个工作,然后输入两个链接.我的问题是为什么它创建这两个额外的表而不是使用我指定的域对象(HardwareOnJob).
任何帮助/指导都会非常感激,因为我们正在努力寻找新的东西.顺便说一下,我的版本是1.2.1
看一下joinTable关键字:
自定义用于非对齐的一对多,多对多和原始集合类型的连接表
以下是用户指南中的示例:
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']
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12415 次 |
| 最近记录: |