spring-data-mongodb中的实体映射是通过
MongoMappingConverter这个类实现的。它可以通过注释把
java类转换为mongodb的文档。
它有以下几种注释:
@Id - 文档的唯一标识,在mongodb中为ObjectId,它是唯一的,通过时间戳+机器标识+进程ID+自增计数器(确保同一秒内产生的Id不会冲突)构成。
@Document - 把一个java类声明为mongodb的文档,可以通
过collection参数指定这个类对应的文档。
@DBRef - 声明类似于关系数据库的关联关系。ps:暂不支持级联的保存功能,当你在本实例中修改了DERef对象里面的值时,单独保存本实例并不能保存DERef引用的对象,它要另外保存,如下面例子的Person和Account。
@Indexed - 声明该字段需要索引,建索引可以大大的提高查询效率。
@CompoundIndex - 复合索引的声明,建复合索引可以有效地提高多字段的查询效率。
@GeoSpatialIndexed - 声明该字段为地理信息的索引。
@Transient - 映射忽略的字段,该字段不会保存到
mongodb。
@PersistenceConstructor - 声明构造函数,作用是把从数据库取出的数据实例化为对象。该构造函数传入的值为从DBObject中取出的数据。
以下引用一个官方文档的例子:
Person类
@Document(collection="person")
@CompoundIndexes({
@CompoundIndex(name = "age_idx", def = "{'lastName': 1, 'age': -1}")
})
public class Person<T extends Address> {
@Id
private String id;
@Indexed(unique = true)
private Integer ssn;
private String firstName;
@Indexed
private String lastName;
private Integer age;
@Transient
private Integer accountTotal;
@DBRef
private List<Account> accounts;
private T address;
public Person(Integer ssn) {
this.ssn = ssn;
}
@PersistenceConstructor
public Person(Integer ssn, String firstName, String lastName, Integer age, T address) {
this.ssn = ssn;
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.address = address;
}
Account类
@Document
public class Account {
@Id
private ObjectId id;
private Float total;
}
分享到:
相关推荐
《Spring Data MongoDB 1.8.0.RELEASE:深度解析与源码剖析》 Spring Data MongoDB 是 Spring 框架中的一个模块,专门用于简化与 MongoDB 数据库的交互。MongoDB 是一个流行的分布式文档数据库,以其灵活性和高性能...
4. **Spring Data MongoDB**: 这是Spring Data的一个模块,专门用于与MongoDB集成。它提供了MongoTemplate和MongoOperations接口,用于执行数据库操作,还提供了一套Repository接口,允许开发者以声明式的方式定义...
Spring Data MongoDB 1.2.0.RELEASE 为开发者提供了强大的工具,简化了 MongoDB 与 Spring 应用的集成。通过使用该版本,开发者可以更专注于业务逻辑,而不是繁琐的数据访问代码。理解并熟练掌握其核心概念和功能,...
2. **配置 Spring Data MongoDB** 在 Spring 的配置文件 `spring-data.xml` 中增加以下配置: ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" ...
《SpringSource-spring-data-document-examples-1.0.0.M4-MongoDB-Examples》是SpringSource推出的一个示例项目,旨在展示如何使用Spring Data框架的文档支持与MongoDB数据库进行集成。该项目包含了1.0.0.M4版本的...
本整合包正是针对这一需求而准备的,它包含了实现MongoDB与Spring集成所需的所有组件。 首先,我们需要了解MongoDB-Spring的数据访问层(Data Access Layer)。Spring Data MongoDB 提供了一种简单的方式来操作...
在"mongodb+spring+strust框架"的集成中,我们通常会利用Spring的数据访问抽象(DAO)层来管理与MongoDB的交互,而Struts则负责处理用户的请求和视图的展示。以下是一些关于如何将这三者整合的详细知识点: 1. **...
4. **实体类和映射**: 在Spring集成MongoDB的过程中,我们需要定义Java对象(实体类)来表示MongoDB中的文档。这些实体类通常使用`@Document`注解标识,并且可以通过`@Id`注解指定主键。字段可以使用`@Field`注解...
Spring Data MongoDB 是一个Java库,它是Spring Data框架的一部分,专门用于简化与MongoDB数据库的交互。MongoDB是一款流行的NoSQL数据库系统,以JSON格式存储数据,适合处理大规模、非结构化或半结构化的数据。...
Spring Data MongoDB支持自动实体映射,通过注解即可定义对象与MongoDB集合之间的映射关系,同时还提供了丰富的查询构造器,简化了查询操作。 在这个整合项目中,"TestMongodbSpringStruts"很可能是一个测试或者...
Spring Data的Repository抽象层可以与Morphia的实体映射相结合,提供强大的功能。例如,通过实现自定义的Repository接口,我们可以利用Morphia的查询能力,同时享受Spring Data的自动化和灵活性。 在`spring-...
Spring Data 是一个由 Spring 社区开发的框架,旨在简化数据访问层的开发工作,它提供了与各种持久化技术(如 JPA、MongoDB、Neo4j、Redis 等)集成的统一接口。这个"spring-data-应用源码"包含了一些示例项目,可以...
2. **实体映射**: 在Spring Data MongoDB中,我们使用`@Document`注解标记一个类作为MongoDB的文档对象。这个注解包含了数据库集合的名称。每个字段可以使用`@Id`注解来指定主键,或者让MongoDB自动生成。 3. **...
首先,Spring Data MongoDB是Spring框架的一个模块,它提供了与MongoDB集成的简单API和ORM(对象关系映射)功能。Spring Data MongoDB允许开发者通过Java方法定义来执行MongoDB的查询,减少了对原生MongoDB查询语法...
在本项目"SpringBoot-JPA-MongoDB"中,我们将探讨如何使用Spring Boot框架与Java Persistence API (JPA)来集成非关系型数据库MongoDB。Spring Boot简化了配置过程,而JPA则提供了与多种数据库交互的标准接口。下面将...
在 Spring Boot 中,我们将 MongoDB 的集合映射为 Java 类,通常使用 `@Document` 注解来标识。例如,创建一个名为 `User` 的实体类: ```java import org.springframework.data.annotation.Id; import org.spring...
总结起来,Spring Data Document 1.0.0.M4为Java开发者提供了一个强大且易于使用的工具,极大地简化了与MongoDB的集成工作。借助其丰富的功能,开发者可以更专注于业务逻辑,而非底层数据操作的细节。然而,为了充分...
当我们谈论“Spring-MongoDB整合”时,这意味着我们要将Spring框架与MongoDB数据库集成,以便在Java应用中充分利用MongoDB的优势。 首先,我们需要理解Spring Data MongoDB项目,它是Spring Data模块的一部分,旨在...
### 使用MongoDB与Spring Data创建Java应用:深入解析与实践指南 #### MongoDB与Spring Data简介 MongoDB,作为NoSQL数据库家族的一员,以其强大的可扩展性、高性能和开源特性,在数据库领域占据了一席之地。不同...
总结,Spring Data MongoDB通过提供MongoDB的高级抽象和Spring框架的集成,大大简化了Java开发者与MongoDB数据库的交互。无论是基础的CRUD操作,还是复杂的查询和领域模型设计,都能通过简洁的API和接口定义来实现,...