您好我有以下域类.
class Student {
int age
static hasMany = [courses:Course]
}
class Course {
String name
static hasMany = [students:Student]
}
Run Code Online (Sandbox Code Playgroud)
我想找到7岁的学生参加课程(身份1).
我可以使用动态查找程序或条件构建器或HQL吗?
我不想做跟随,因为它加载所有学生效率低下:
def course = Course.get(1);
course.students.findAll{ it.age == 7 }
Run Code Online (Sandbox Code Playgroud) 我正在和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