相关疑难解决方法(0)

Grails:如何在多对多映射中查询对象?

您好我有以下域类.

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 grails-orm grails-domain-class

9
推荐指数
1
解决办法
6124
查看次数

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

我正在和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

grails many-to-many hibernate grails-orm ejb-3.0

4
推荐指数
2
解决办法
1万
查看次数