文档章节

mongo多态保存

go4it
 go4it
发布于 2016/10/06 19:41
字数 280
阅读 18
收藏 0

##Org

public class Org {

    @Id
    private String id;

    private String name;

    private Set<Employee> employees;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Set<Employee> getEmployees() {
        return employees;
    }

    public void setEmployees(Set<Employee> employees) {
        this.employees = employees;
    }
}

##employee

public abstract class Employee {

    protected String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

##leader

public class Leader extends Employee{

    private String address;

    private String title;

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

##worker

public class Worker extends Employee{

    private String mobile;

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
}

##保存实例

@Test
	public void testPolymorphic() {
		Org org = new Org();
		org.setName("tech");

		Leader leader = new Leader();
		leader.setName("leader");
		leader.setAddress("fj");
		leader.setTitle("vp");

		Worker worker = new Worker();
		worker.setName("worker");
		worker.setMobile("15909898989");

		Set<Employee> employees = new HashSet<>();
		employees.add(leader);
		employees.add(worker);

		org.setEmployees(employees);
		orgDao.save(org);
	}

##mongo里的数据保存了class

{
    "_id" : ObjectId("57f635e0af7b3807e8101884"),
    "_class" : "com.codecraft.demo.model.Org",
    "name" : "tech",
    "employees" : [ 
        {
            "mobile" : "15909898989",
            "name" : "worker",
            "_class" : "com.codecraft.demo.model.Worker"
        }, 
        {
            "address" : "fj",
            "title" : "vp",
            "name" : "leader",
            "_class" : "com.codecraft.demo.model.Leader"
        }
    ]
}

##取数据

@Test
	public void testFind(){
		Org org = orgDao.findOne("57f635e0af7b3807e8101884");
		Set<Employee> employees = org.getEmployees();
		for(Employee emp : employees){
			if(emp instanceof Leader){
				System.out.println(emp);
			}else if(emp instanceof Worker){
				System.out.println(emp);
			}
		}
	}

##docs

© 著作权归作者所有

共有 人打赏支持
go4it
粉丝 68
博文 768
码字总数 577269
作品 0
深圳
私信 提问
mongo主库地址变更,从库修改数据源IP

杀mongo进程时请不要kill -9!!!你可以多kill几次 ,或kill -2 同步时间:/usr/sbin/ntpdate pool.ntp.org 1. 切换到mongo用户,修改配置文件, 注释 #slave=true #source= 旧IPx.x.x.x:270...

beck_716
2016/11/24
0
0
Python搭建BT资源搜索站

通过前面四篇文章,我们已经采集到了N多BT种子,并且已经将种子中包含的一些信息保存在Mongo数据库中,接下来就是如何将Mongo中的数据通过WEB服务器提供给搜索引擎,提供给一些浏览者。即,如...

mickelfeng
01/12
0
0
利用scrapy 爬取OSChina全站URL

以 oschina 为例: 生成项目 配置 编辑 settings.py, 加入以下(主要是User-agent和piplines): 编辑 items.py, 内容如下: 编辑 pipelines.py, 内容如下: 生成模板spider然后修改: 编辑 spider...

巴鲁
2016/06/15
262
0
scrapy 爬取全站URL

以 oschina 为例: 生成项目 配置 编辑 settings.py, 加入以下(主要是User-agent和piplines): 编辑 items.py, 内容如下: 编辑 pipelines.py, 内容如下: 生成模板spider然后修改: 编辑 spider...

好铁
2016/04/14
1K
2
mongoDB(1):windows下安装mongoDB(解压缩版)

我的电脑系统是win10 下面说明如何在win10下用zip包安装好mongoDB数据库 首先要先从网上下载mongoDB的zip包 http://dl.mongodb.org/dl/win32/x86_64 可以从这里下载,我选的是最新的3.2版本,...

xiaomin0322
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源

背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No credential found 那么怎样排查这些奇怪的日志从哪里打印出来的呢?因为搞不清...

hengyunabc
今天
1
0
home hosts

home hosts lwk@qwfys:~$ cat /etc/hosts127.0.0.1 localhost127.0.1.1 qwfys192.168.56.101vm600.qwfys.com39.108.212.91alpha1.ppy.com39.108.117.122alpha2.p......

qwfys
今天
1
0
大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
今天
4
0
hadoop垃圾回收站

在生产生,hdfs回收站必须是开启的,一般设置为7天。 fs.trash.interval 为垃圾回收站保留时间,如果为0则禁用回收站功能。 fs.trash.checkpoint.interval 回收站检查点时间,一般设置为小于...

hnairdb
昨天
3
0
腾讯与Github的魔幻会面背后的故事…

10月22日,腾讯开源管理办公室有幸邀请到Github新晋CEO Nat Friedman,前来鹅厂参观交流。目前腾讯已经有近70个项目在Github上开源,共获得17w stars,世界排名11位。Github是腾讯开源的主阵...

腾讯开源
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部