用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

使用orika进行对象间Mapping

2014-06-20 作者: 路易斯陈凯瑞举报

[java]代码库

package bean_mapping;

import static org.junit.Assert.assertEquals;

import java.util.ArrayList;
import java.util.List;

import ma.glasnost.orika.MapperFacade;
import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.impl.DefaultMapperFactory;

import org.junit.Before;
import org.junit.Test;

public class TestBeanMapping {

    MapperFacade mapper = null;

    @Before
    public void init() {
        //创建mapper的工厂类
        MapperFactory factory = new DefaultMapperFactory.Builder().build();
        //注册一个mapper,这段可以同过继承configurableMapper类,配置成spring bean
        factory.registerClassMap(factory.classMap(SourceObj.class, DescObj.class)
            //设置正向空值不复制,反向空值不复制
            .mapNulls(false).mapNullsInReverse(false)
            //相同的字段不需要显示声明
            //.field("prop1", "prop1")
            .field("intProp2", "prop2")
            //List, Array, Map类型的复制方式
            .field("listProp3{}", "prop3{}").mapNulls(true)
            .byDefault().toClassMap());
        //获取mapper        
        mapper = factory.getMapperFacade();
    }

    @Test
    public void testMapping() {
        //构建源对象
        SourceObj source = new SourceObj();
        source.setProp1("test");
        source.setIntProp2("test2");
        List<String> propList = new ArrayList<String>();
        propList.add("TestString");
        propList.add("TestString2");
        source.setListProp3(propList);
        //转换成目标对象
        DescObj desc = mapper.map(source, DescObj.class);
        assertEquals(source.getProp1(), desc.getProp1());
        assertEquals(source.getIntProp2(), desc.getProp2());
        assertEquals(desc.getProp2(), "test2");
        assertEquals(desc.getProp3().size(),2);
    }

}

[源代码打包下载]




网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...