我想创建一个域类,一个用户可以发布许多订单[双向],许多用户可以喜欢一个订单[单向]。
我编写了一个域类,如下所示,
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看起来与我的问题类似,但我没有收到,请帮忙。
答案 0 :(得分:3)
首先,order
是SQL中的保留字。由于GORM默认情况下会创建一个与您的类同名的表,因此您需要重命名您的类或提供在映射到SQL表时使用的其他名称。
例如:
class Order {
static mapping = {
table 'user_order'
}
// ...
}
另一个问题是Order
包含与User
的两个关联。您需要告诉GORM其中一个是从User
到Order
的双向关联。这可以使用mappedBy
来实现,如下所示:
class User {
String userName
static hasMany = [orders: Order]
static mappedBy = [orders: 'owner']
}
希望这有帮助。