Grails中的数据持久化与Spring框架集成
1. NoSQL支持
GORM不再与Hibernate耦合,而是作为一个API存在,这使得不同的实现之间有了大量的共性。一般来说,大多数相同的映射、验证、持久化方法(如get、save、delete、count),甚至动态查找器、条件查询和where查询都可以使用。不过,有些概念在NoSQL实现中并不兼容,比如事务和锁定,所以需要了解底层的数据存储。
目前有几个提供GORM实现的NoSQL插件,其可用性各有不同,较为完整的插件如下:
| 插件名称 | 支持的数据存储 |
| ---- | ---- |
| mongodb插件 | MongoDB文档存储 |
| redis - gorm插件 | Redis键值存储 |
| neo4j | Neo4j图数据库 |
| simpledb | 亚马逊SimpleDB数据存储 |
| dynamodb | 亚马逊DynamoDB数据存储 |
NoSQL实现通常实现了完整GORM API的很大一部分,并且还会添加额外的功能,同时提供对底层数据存储本身的访问,以便直接使用原生API。例如mongodb插件中的动态属性支持,MongoDB文档没有固定的模式,因此域类可以根据需要存储和检索额外的未映射属性,示例代码如下:
def p = new Plant(name:"Pineapple")
p['color'] = 'Yellow'
p['hasLeaves'] = true
p.save()
p = Plant.findByName("Pine
超级会员免费看
订阅专栏 解锁全文
62

被折叠的 条评论
为什么被折叠?



