gpt4 book ai didi

grails - Gorm:对象映射

转载 作者:行者123 更新时间:2023-12-02 15:41:57 26 4
gpt4 key购买 nike

我有两个对象,CarOffer和Car。 CarOffer由各种属性组成,其中一个属性引用Car。换句话说,我可以有多个CarOffers,也可以有多个Car,但是每个CarOffer只能有一个,只有一个Car。一辆汽车可以同时存在多个CarOffers中。删除CarOffer不应删除其引用的汽车,并且除非已删除所有引用Car的CarOffers,否则不能删除Car。

通常,我只是将carId属性添加到CarOffer,但是从gorm文档中,我觉得我应该使用Gorm的功能将Car Object添加到CarOffer,而不仅仅是其id。

但是我有点迷茫,我觉得“属于”或“没有”都没有真正映射到我想要的东西。

此外,我将如何创建一个新的CarOffer?
我希望能够做到

new CarOffer(carId: 123).save()

但是我觉得我必须这样做:
new CarOffer(car: Car.get(123)).save()

这不会创建一个额外的请求吗?

最佳答案

I feel neither 'belongsTo' nor 'hasOne' really map to what I want.



您不需要 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 would I go to create a new CarOffer?



这取决于您尚未提及的应用程序中的细节,但是您可以执行以下操作...
Car c = // ...
CarOffer co = new CarOffer(attribute1: 'something', attribute2: 2112, car: c)

关于grails - Gorm:对象映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56926760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com