实际上做什么静态mapWith =" mongo"?

时间:2016-01-16 19:20:35

标签: mongodb grails

static mapWith =" mongo"

我不清楚这意味着什么。根据{{​​3}}

mapWith

  

目的

     

mapWith静态属性添加了控制域的能力   上课正在坚持下去。

     

实施例

class Airport {
  static mapWith = "none"

}
     

我也经历了这个问题。在开发模式下通过元编程删除simpledb mapWith

我知道在我的grails应用程序中,

static mapWith =" mongo"

可能正在使用mongoDB插件。 但我还不清楚。 我还浏览了这些stackoverflow链接:

  1. http://grails.github.io/grails-doc/3.0.x/ref/Domain%20Classes/mapWith.html

  2. get mapWith static domain field value from GrailsDomainClass grails

  3. Is it possible in grails to disable persistence of a domain class dynamically with inheritance

2 个答案:

答案 0 :(得分:2)

在Grails中,如果我们想要创建某些字段非持久性,我们可以使用 transient 关键字,如下所示:

class DomainClass {
static transients = ['field1', 'field2']
Integer field1
Integer field2
Integer persistentField1
Integer persistentField2 
}

也可以使用 mapwith 关键字制作整个域类非持久性

class NonPersistentDomain {
.........
....................
.......................
static mapWith = 'none';
}

有人可以说最好使用命令对象而不是域,但它有自己的优点:

可以使用GrailsDomainClass访问它。 它通过脚手架生成UI时参与。

另见此链接

Grails Data Mapping Mongo Manual

答案 1 :(得分:0)

我同意@Mananpreet Singh的回答,但是对于static mapWith = "mongo"明确的是,这意味着如果你想用Mongo而不是Hibernate来持久化特定的域类,你必须使用它。

http://gorm.grails.org/latest/mongodb/manual/#withHibernate