知识点
软件工具
相关文章
更多最近更新
更多Mongodb与spring集成(2)------实体映射
2019-03-11 20:16|来源: 网络
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; }
转自:http://blog.csdn.net/laigood/article/details/7055824
相关问答
更多-
mongodb struts spring怎么集成使用[2023-07-17]
mongodb struts spring集成使用方法: 1、 定义mongo对象,对应的是mongodb官方jar包中的Mongo,replica-set设置集群副本的ip地址和端口 2、定义mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 3、 mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 4、 映射转换器,扫描back-package目录下的文件,根据注释,把它们作为mongodb的一个collection的映 ... -
Spring与iBATIS的集成[2022-02-19]
IbatisAdmPacVoucherDAO继承了BaseDAO类,对于继承来的属性,这里用parent="sqlMapClientDAO" 来获得。 我们找到sqlMapClientDAO的声明如下: 是不是有一款什么手机软件,可以很自然的拉长腿部?不是美图秀秀,有知道的不?[2022-10-20]
springspring怎么集成mongodb[2023-06-03]
mongodb struts spring集成使用方法: 1、 定义mongo对象,对应的是mongodb官方jar包中的Mongo,replica-set设置集群副本的ip地址和端口mongodb struts spring怎么集成使用?[2022-10-10]
hibernate新出了好像是叫hibernate-ogm 吧,不知道有没有正式发布。它支持nosql数据库。 或者你可以使用spring-data-mongodb,这是 spring出的,目前应该的比较多。mongodb struts spring怎么集成使用[2021-11-26]
hibernate新出了好像是叫hibernate-ogm 吧,不知道有没有正式发布。它支持nosql数据库。 或者你可以使用spring-data-mongodb,这是spring出的,目前应该的比较多。这些我都是在慕课网学到的。春天的英语怎么读?[2022-05-21]
springSpring Data MongoOperations.group()方法映射到db.collection.group() MongoDB命令,而不是$group聚合函数。 目前在Spring Data MongoDB中不支持聚合框架。 正如你所提到的,映射减少虽然受到支持 The Spring Data MongoOperations.group() method is mapped to db.collection.group() MongoDB command and not the $group a ...我认为你可以通过这种映射实现它(如果我理解你的问题): class Person { String name; int age; } class Outer { @Field("columns") Listpersons; } I think you can achieve it through this mapping (If I understood your question correctly): class Person { Strin ... 答案在文档http://docs.spring.io/spring-data/data-mongo/docs/1.7.0.M1/reference/html/ MongoDB要求您对所有文档都有一个“_id”字段。 如果你没有提供一个驱动程序将分配一个ObjectId与一个生成的值。 当使用MongoMappingConverter时,有一些规则来控制Java类中的属性如何映射到这个'_id'字段。 以下概述哪些属性将映射到'_id'文档字段: 用@Id(org.springframework.data.a ...