我不熟悉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?
任何帮助表示感谢。
答案 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以阅读文档。