gpt4 book ai didi

grails - 在Grails中为同一域类创建一对多和多对多

转载 作者:行者123 更新时间:2023-12-02 14:24:02 25 4
gpt4 key购买 nike

我想创建一个域类,例如,一个用户可以发布多个订单(双向),一个订单可以被很多用户喜欢(单向)。

我编写了如下所示的域类,

Class User {

String userName;

List orders

static hasMany = [Order]
}

Class Order {

String orderId

String orderName

//Indicates this order belongs to only one user
static belongsTo =[owner : User ] // Bidirectional

//Indicates order can be liked by many users
static hasMany = [likedUser : User] //Unidirectional
}

但是我说错误的模式是错误的。任何人都请帮忙...

这个 post看起来类似于我的问题,但我没有得到,请帮忙。

最佳答案

首先,order是SQL中的保留字。由于GORM默认情况下会创建一个与您的类同名的表,因此您需要重命名您的类或提供其他名称以映射到SQL表时使用。

例如:

class Order {
static mapping = {
table 'user_order'
}
// ...
}

另一个问题是 Order包含与 User的两个关联。您需要告诉GORM其中哪一个是从 UserOrder的双向关联。可以使用 mappedBy来实现,如下所示:
class User {
String userName

static hasMany = [orders: Order]
static mappedBy = [orders: 'owner']

}

希望这可以帮助。

关于grails - 在Grails中为同一域类创建一对多和多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23843837/

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