Grails一对一查询选项

时间:2014-12-06 21:36:03

标签: database grails gorm

我不熟悉grails并在grails中实现一对一的关系并尝试查询表,而不确定如何在域类中表示一对一的关系并查询结果。

我有两张桌子

car(car_id number primary key,name varchar2(255))
engine(eng_id number primary key,name varchar2(255),car_id number (foreign key to car_id))

域类:

class Car {
   ..
  static hasOne = [engine: Engine]
}


class Engine {
   Car car
   static belongsTo = [car : Car]
}

是域类中正确的上述一对一关系吗?

我需要查询以获取所有拥有引擎的汽车,我应该使用条件查询api还是使用HQL?

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:0)

class Engine {
   //Car car 
   static belongsTo = [car : Car]
}

只需删除Car car即可。现在你有2个链接到引擎中的Car类

答案 1 :(得分:0)

对于真正的一对一关系,请在拥有方使用hasOne属性,例如汽车:

class Car {
   ..
  static hasOne = [engine: Engine]
}


class Engine {
   Car car

   static constraints = [
      car unique: true
}

一个好的做法是在关系的一侧添加一个独特的约束。单击here以阅读文档。