日期:2014-05-16  浏览次数:20378 次

Grails跟Hibernate和Mongodb的组合
  标题看起来很噱头哦
 
先简要说明一下我在项目中的必要场景:因为采用的Shiro的验证插件,以及一些比较固定的domain,所以会保留Hibernate的domain对象,但是在特定的domain中,要求其字段是可维护的,这对于关系数据库来说,显然不是那么合适,而Mongodb以其Document为基础,却可以满足这种需求。
 
  因此在这样的应用工程中,至少需要两个插件:Shiro和Mongodb,其基本用法参考其官方文档就好了。此处简单总结一下在整合当中碰到的几个问题。

1. Domain的id,如无特殊情况,要用 ObjectId
import org.bson.types.ObjectId 
class DummyData {
  static mapWith = "mongo"
  ObjectId id
}


2. 关于Service,请使用
static transactional = 'mongo'

否则可能会出现没有入库的情况