二、Mapping classes

entity类上加注解:@Entity,其成员变量必须有@Id

@Id
private ObjectId id;

其在mongodb中变量名: _id

@Embedded,标示子类(子文档),用了@Embedded,@Id可以不存在。

例子:

import org.bson.types.ObjectId;
import org.mongodb.morphia.annotations.Entity;
import org.mongodb.morphia.annotations.Field;
import org.mongodb.morphia.annotations.Id;
import org.mongodb.morphia.annotations.Index;
import org.mongodb.morphia.annotations.Indexes; import org.mongodb.morphia.annotations.Property; import org.mongodb.morphia.annotations.Reference; @Entity("employees") @Indexes( @Index(fields=@Field(value="salary",type=IndexType.ASC)) ) public class Employee { @Id private ObjectId id; private String name; @Reference private Employee manager; @Reference private List<Employee> directReports; @Property("wage") private Double salary; }

@Entity("employees"):标示mongodb中文档名为:employees。如果不指定employees,则默认类名作为文档名。

@Indexes:标示为salary建立“升序”索引。

@Id:主键id,类型是ObjectId。注意:该id可以是任何类型,不见得就是ObjectId。除了transient和static字段,Morphia视图去保存任何没有被注解的字段

@Property:该注解可选。如果不指定则使用该java属性名作为文档字段名。

@Reference:引用其他实体。形如:

"books" : [ {"$ref" : "books","$id" : ObjectId("5bceb691dd007127d4271799")}]

注意,这些引用实体必须提前已经被保存了或者至少分配了Id,否则morphia会抛出异常。

转载于:https://www.cnblogs.com/yaoyuan2/p/9836884.html

morphia(1)-基础相关推荐

  1. 将MongoDB与Morphia结合使用

    在过去的几年中, NoSQL数据库(例如CouchDB,Cassandra和MongoDB)在不需要运行传统RDBMS的语义和开销的应用程序中得到了普及. 我不会进入选择NoSQL数据库的设计决策,因 ...

  2. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】

    类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...

  3. 提交表单自动刷新_Web自动化测试:元素的基础操作和浏览器基础操作

    上一节,我们了解了如何定位元素,其实也有涉及对于元素的操作,这一节我们就详细的介绍一下对于元素的操作和对于浏览器的一些操作 一.对于元素的基础操作: clear():清除输入框内的文本 send_ke ...

  4. java mybatis基础

    java mybatis基础 1.1 什么是mybatis? mybatis是一个优秀的持久层框架. 避免几乎所有的JDBC代码和手动设置参数以及获取结果集的过程. 可以使用简单的xml或者注解来配置 ...

  5. 【J2SE】学习基础

    Java基础 语法基础 OO Exception Array 基础类 I/O Stream Collection/Generic Thread TCP/UDP GUI Meta Data Regula ...

  6. 【Linux系统】基础总结

    我不太清楚运维部门具体是做什么的,就接触过一点点运维部门! 也就是是知道他们负责管理服务器,管理网络,管理项目部署 偶尔自己需要部署,不得不接触一些linux命令.简单总结一些基础 linux系统发展 ...

  7. 【Java 2 Platform Enterprise Edition】基础

    问题1:为什么java是无关平台? 你之前用C或者C++写的源代码,编译好后,换一种操作系统,可能就执行不了了.因为新的操作系统不识别,你需要修改你的源码,并在新的操作系统上重新编译才能运行,比如Wi ...

  8. SpringCloud Alibaba微服务实战(一) - 基础环境搭建

    说在前面 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来 ...

  9. Redis概述和基础

    Redis 1.NoSQL NoSQL = Not Only SQL(不仅仅是SQL) 泛指非关系型数据库的,随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其是超大规模的 ...

最新文章

  1. Oracle bootstrap$ 详解
  2. 这里提供了在Linux上显示某个进程的线程的几种方式
  3. Web API之service worker
  4. Android错误-error:Foundtextwhereitemtagisexpected
  5. 光纤交换机按照级别可分为3种
  6. laravel 邮件配置
  7. Dubbo(一) 使用Java RMI 实现RPC(远程过程调用)
  8. 开源GIS(九)——openlayers中简单要素的添加与geojson数据修改添加
  9. c语言文件操作常用函数及读写文件代码举列
  10. 大数据如何应用在企业人力资源管理
  11. String.resize()
  12. C#将word转换为HTML格式
  13. PyTorch批训练及优化器比较
  14. C语言反汇编 - 函数与结构体
  15. 软件概要设计与详细设计
  16. 2013数学建模B题
  17. Target folder is neither empty nor does it point to an existing SDK installtion.
  18. Sql Server 2012 Enterprise Edition 企业版 迅雷 下载地址
  19. [ARM-assembly]-ARMV8-A64指令编码介绍
  20. 【第008问 Unity中什么是UV?】

热门文章

  1. 计算机设备布局图,针对不同设备类型创建仪表板布局
  2. apache评分表的意义_APACHE评分系统及评分表
  3. php redis管道,php redis pipeline怎么用 - 翟码农技术博客
  4. php是独立服务吗,在LNMP服务器中,PHP是作为一个独立的服务存在的,这个服务叫做_______。...
  5. jquery实现点击a链接,跳转之后,该a链接处显示背景色
  6. 刚从阿里、头条面试回来,尚硅谷java数据结构与算法百度云
  7. 三面蚂蚁金服(交叉面)定级阿里P6
  8. 【响应式Web前端设计】Bootstrap入门Demo(导航栏)
  9. python【Configparser解析配置文件库】Python3中的configparser模块
  10. 加快tensorflow模型预测速度