我有两个对象,一个CarOffer和一辆汽车。CarOffer由各种属性组成,其中一个属性引用汽车。换句话说,我可以有多个CarOffers,多个汽车,但是每个CarOffer只有一辆车。一辆汽车可以出现在多个CarOffers中。删除CarOffer不应该删除它引用的car,除非引用它的所有CarOffers都已被删除,否则不应该能够删除Car。
通常,我只是向carId添加了一个CarOffer属性,但是从gorm文档中我觉得我应该使用Gorm的功能将一个Car对象添加到CarOffer中,而不是仅仅添加它的id。
然而,我有点迷失了,我觉得既不是“belongsTo”,也不是“hasOne”,而是真正想要的东西。
此外,我将如何创建一个新的CarOffer?我希望能做到
new CarOffer(carId: 123).save()但我觉得我必须这样做:
new CarOffer(car: Car.get(123)).save()这样就不会产生一个额外的请求吗?
发布于 2019-07-08 00:44:04
我觉得“belongsTo”和“hasOne”都不是我真正想要的。
您不需要belongsTo,因为这将导致删除被级联,并且您说您不希望这样做(“删除一个CarOffer不应该删除它引用的汽车”)。
您可以使用hasOne或不使用,这将影响其中包含外键的表。
如果不想使用carId方法,可以这样做:
class CarOffer {
String attribute1
int attribute 2
// etc...
Car car
}
class Car {
String attribute1
// etc...
// There could be, but does not need to be
// any mention of CarOffer in this class
}...how我会去创建一个新的CarOffer吗?
这取决于你的应用程序中没有提到的细节,但你可以这样做.
Car c = // ...
CarOffer co = new CarOffer(attribute1: 'something', attribute2: 2112, car: c)https://stackoverflow.com/questions/56926760
复制相似问题