文档章节

mongo多态保存

go4it
 go4it
发布于 2016/10/06 19:41
字数 258
阅读 17
收藏 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.patterncat.demo.model.Org",
    "name" : "tech",
    "employees" : [ 
        {
            "mobile" : "15909898989",
            "name" : "worker",
            "_class" : "com.patterncat.demo.model.Worker"
        }, 
        {
            "address" : "fj",
            "title" : "vp",
            "name" : "leader",
            "_class" : "com.patterncat.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
粉丝 51
博文 699
码字总数 501216
作品 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
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
线上实战zabbix监控mongodb详细步骤

系统运维工程师 李超 因为我安全问题我们只能呢个通过mongo客户端去远程监控mongo服务端。 1、 如果你不是在mongo服务器上操作请参考我下边的部分,如果是直接在mongodb服务器上安装的zabbi...

拎壶冲冲冲
08/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

C++ gflags

gflags是google一个开源的处理命令行参数的库,相比getopt,更加容易使用。 定义参数 gflags主要支持的参数类型包括 DEFINEbool: boolean DEFINEint32: 32-bit integer DEFINEint64: 64-bit ...

SibylY
28分钟前
0
0
intellij IDEA Properties中文unicode转码问题

在IDEA中创建了properties文件,发现默认中文不会自动进行unicode转码。如下 在project settings - File Encoding,在标红的选项上打上勾,确定即可 效果图如下: unicode转码后效果...

muzi1994
28分钟前
0
0
Java IO类库之PipedWriter

一、PipedWriter介绍 PipedWriter是字符管道输出流,继承自Writer,功能与PipedOutputStream类似,通过与PipedReader组合使用实现类似管道的功能,在多线程环境下,一个线程使用PipedWriter...

老韭菜
32分钟前
0
0
精简分页组件(手写)

需要引入CSS(没错就是这4行) .pagelist { text-align: center; color: #666; width: 100%; clear: both; margin: 20px 0; padding-top: 20px }.pagelist a { color: #666; margin: 0 2px;......

AK灬
33分钟前
3
0
29 岁成为阿里巴巴 P8,工作前 5 年完成晋升 3 连跳,他如何做到?

泡泡是我的好朋友。今年 31 岁,毕业后就进了阿里巴巴,工作五年内从 P4 晋升至 P6、P7、P8。 和他很少聊到工作,但总觉得他有很棒的职场心得,应该分享出来,于是有了这次采访。希望对职场新...

Java填坑之路
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部