`
cloudtech
  • 浏览: 4816127 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Mongodb与spring集成(2)------实体映射

 
阅读更多

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 1.8.0.RELEASE:深度解析与源码剖析》 Spring Data MongoDB 是 Spring 框架中的一个模块,专门用于简化与 MongoDB 数据库的交互。MongoDB 是一个流行的分布式文档数据库,以其灵活性和高性能...

    Spring3+Spring-data-mongodb1.5.6示例

    4. **Spring Data MongoDB**: 这是Spring Data的一个模块,专门用于与MongoDB集成。它提供了MongoTemplate和MongoOperations接口,用于执行数据库操作,还提供了一套Repository接口,允许开发者以声明式的方式定义...

    spring-data-mongodb-1.2.0.RELEASE

    Spring Data MongoDB 1.2.0.RELEASE 为开发者提供了强大的工具,简化了 MongoDB 与 Spring 应用的集成。通过使用该版本,开发者可以更专注于业务逻辑,而不是繁琐的数据访问代码。理解并熟练掌握其核心概念和功能,...

    Spring-data-mongo应用

    2. **配置 Spring Data MongoDB** 在 Spring 的配置文件 `spring-data.xml` 中增加以下配置: ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" ...

    SpringSource-spring-data-document-examples-1.0.0.M4-MongoDB-Examples

    《SpringSource-spring-data-document-examples-1.0.0.M4-MongoDB-Examples》是SpringSource推出的一个示例项目,旨在展示如何使用Spring Data框架的文档支持与MongoDB数据库进行集成。该项目包含了1.0.0.M4版本的...

    mongodb-spring 整合包

    本整合包正是针对这一需求而准备的,它包含了实现MongoDB与Spring集成所需的所有组件。 首先,我们需要了解MongoDB-Spring的数据访问层(Data Access Layer)。Spring Data MongoDB 提供了一种简单的方式来操作...

    mongodb+spring+strust框架

    在"mongodb+spring+strust框架"的集成中,我们通常会利用Spring的数据访问抽象(DAO)层来管理与MongoDB的交互,而Struts则负责处理用户的请求和视图的展示。以下是一些关于如何将这三者整合的详细知识点: 1. **...

    Spring集成Mongodb配置含jar包

    4. **实体类和映射**: 在Spring集成MongoDB的过程中,我们需要定义Java对象(实体类)来表示MongoDB中的文档。这些实体类通常使用`@Document`注解标识,并且可以通过`@Id`注解指定主键。字段可以使用`@Field`注解...

    spring-data-mongodb:所有Spring Mongodb项目

    Spring Data MongoDB 是一个Java库,它是Spring Data框架的一部分,专门用于简化与MongoDB数据库的交互。MongoDB是一款流行的NoSQL数据库系统,以JSON格式存储数据,适合处理大规模、非结构化或半结构化的数据。...

    mongodb&spring&struts&springdatamongodb整合,带所有jar,需要的拿走

    Spring Data MongoDB支持自动实体映射,通过注解即可定义对象与MongoDB集合之间的映射关系,同时还提供了丰富的查询构造器,简化了查询操作。 在这个整合项目中,"TestMongodbSpringStruts"很可能是一个测试或者...

    spring-mongodb-morphia:springdata-mongo morphia mongodb 学习

    Spring Data的Repository抽象层可以与Morphia的实体映射相结合,提供强大的功能。例如,通过实现自定义的Repository接口,我们可以利用Morphia的查询能力,同时享受Spring Data的自动化和灵活性。 在`spring-...

    spring-data-应用源码

    Spring Data 是一个由 Spring 社区开发的框架,旨在简化数据访问层的开发工作,它提供了与各种持久化技术(如 JPA、MongoDB、Neo4j、Redis 等)集成的统一接口。这个"spring-data-应用源码"包含了一些示例项目,可以...

    Spring-data + MongoDb源码

    2. **实体映射**: 在Spring Data MongoDB中,我们使用`@Document`注解标记一个类作为MongoDB的文档对象。这个注解包含了数据库集合的名称。每个字段可以使用`@Id`注解来指定主键,或者让MongoDB自动生成。 3. **...

    spring 整合mongodb

    首先,Spring Data MongoDB是Spring框架的一个模块,它提供了与MongoDB集成的简单API和ORM(对象关系映射)功能。Spring Data MongoDB允许开发者通过Java方法定义来执行MongoDB的查询,减少了对原生MongoDB查询语法...

    SpringBoot-JPA-MongoDB:SpringBoot-JPA-MongoDB

    在本项目"SpringBoot-JPA-MongoDB"中,我们将探讨如何使用Spring Boot框架与Java Persistence API (JPA)来集成非关系型数据库MongoDB。Spring Boot简化了配置过程,而JPA则提供了与多种数据库交互的标准接口。下面将...

    mongodb与springboot集成例子

    在 Spring Boot 中,我们将 MongoDB 的集合映射为 Java 类,通常使用 `@Document` 注解来标识。例如,创建一个名为 `User` 的实体类: ```java import org.springframework.data.annotation.Id; import org.spring...

    spring-data-document-1.0.0.M4

    总结起来,Spring Data Document 1.0.0.M4为Java开发者提供了一个强大且易于使用的工具,极大地简化了与MongoDB的集成工作。借助其丰富的功能,开发者可以更专注于业务逻辑,而非底层数据操作的细节。然而,为了充分...

    spring-mongodb整合

    当我们谈论“Spring-MongoDB整合”时,这意味着我们要将Spring框架与MongoDB数据库集成,以便在Java应用中充分利用MongoDB的优势。 首先,我们需要理解Spring Data MongoDB项目,它是Spring Data模块的一部分,旨在...

    用MongoDB和Spring_Data创建Java应用

    ### 使用MongoDB与Spring Data创建Java应用:深入解析与实践指南 #### MongoDB与Spring Data简介 MongoDB,作为NoSQL数据库家族的一员,以其强大的可扩展性、高性能和开源特性,在数据库领域占据了一席之地。不同...

    spring-data-mongodb:使用MongoDB时提供支持以提高Java开发人员的工作效率。 使用熟悉的Spring概念,例如用于核心API使用和轻量级存储库样式数据访问的模板类

    总结,Spring Data MongoDB通过提供MongoDB的高级抽象和Spring框架的集成,大大简化了Java开发者与MongoDB数据库的交互。无论是基础的CRUD操作,还是复杂的查询和领域模型设计,都能通过简洁的API和接口定义来实现,...

Global site tag (gtag.js) - Google Analytics