最初发布在Grails邮件列表中......
我通常不是数据库人员,但随着最新的mongodb grails插件的发布,我想看看没有SQL数据库的重要性。 MongoDB似乎很有趣。我正在阅读有关面向文档存储的信息,并遇到以下情况:
客户/订单/订单行项目
医生说订单应该是一个集合。客户收藏。 line-items应该是一个嵌入在order对象中的行项目数组。
关于GORM,这种模式是如何确保的?我通常会有以下内容:
class Customer {
static hasMany = [orders: Order]
}
class Order {
static hasMany = [orderItems: OrderItem]
static belongsTo = [customer:Customer]
}
class OrderItem {
static belongsTo = [order:Order]
}
如何确保订单是自己的集合而不是嵌入客户?如果这是默认值,那么如何确保OrderItems嵌入在Order中而不是它自己的集合中?这里的默认值是什么?
感谢。
答案 0 :(得分:10)
通过阅读Grails MongoDB插件文档,您似乎需要专门声明嵌入对象,其中引用是默认的。
考虑到这一点,如果你想确保Orders是它自己的集合,并且要嵌入OrderItems,试试这个:
class Customer {
List<Order> orders
}
class Order {
List<OrderItem> orderItems
static embedded = [ 'orderItems' ]
}
class OrderItems {
// properties go here.
}