2

我有一个域对象,它已经有一个名为 的属性versions,所以我想给内置version属性一个不同的名称(在 GORM 中用于乐观锁定)。例如,我想改为调用它updateCount

请注意,我确实想要乐观锁定的语义;我只是想给这个领域另一个名字。这是我天真地尝试过的(但没有奏效):

class Item {
    ObjectId id
    static hasMany = [versions: ItemVersion]
    static mapping = {
        table 'item'
        version column: 'updateCount'  //  <-- This was my attempt
    }
}

我绝对会感谢任何帮助...

  1. 确定这是否可能,以及
  2. 如果是这样,让它工作:-)

谢谢!

4

1 回答 1

4

先说第一件事。MongoDB (NoSQL) 处理Documents 和 Collections 而不是 Table 和 rows

话虽如此,域类应该如下所示:

class Item {
    ObjectId id
    String itemName

    static hasMany = [versions: ItemVersion]
    static mapping = {
        //Collection in Mongodb is to Table in relational world
        collection 'item'

        //attr in Mongodb is to column in relational world
        itemName attr: 'item_name'

        //After spending some time investigating it was found that
        //attr for version does not make any difference
        //The below would not work for implicit GORM variable "version"
        //default attribute name is the variable name.
        //version attr: 'updateCount' 

    }
}

如果您想跨域配置默认属性以打开/关闭版本控制,请查看Global Mapping Configuration

于 2013-08-19T00:07:51.930 回答