标签: dozer

推土机映射的常数

有没有人知道如何用dozer将常量值放入属性?推土机的文档中我没有看到任何相关内容

java dozer

7
推荐指数
1
解决办法
6202
查看次数

推土机映射内部类

我需要使用dozer框架将A类映射到C类.

public class A {

private String fielda1;
private String fielda2;

public String getFielda1() {
    return fielda1;
}
public void setFielda1(String fielda1) {
    this.fielda1 = fielda1;
}
public String getFielda2() {
    return fielda2;
}
public void setFielda2(String fielda2) {
    this.fielda2 = fielda2;
}
}


public class B {
private List<C> cList;

public List<C> getcList() {
    return cList;
}
public void setcList(List<C> cList) {
    this.cList = cList;
}

public static class C {
    private String fieldc1;
    private String fieldc2;

    public String …
Run Code Online (Sandbox Code Playgroud)

java dozer

7
推荐指数
1
解决办法
1万
查看次数

使用Dozer Java API配置自定义转换器


我正在尝试使用Dozer Java API使用自定义转换器映射两个java类.有没有办法在Java中配置类级自定义转换器?现在我必须在XML中添加配置:

<configuration>
    <custom-converters>
        <converter type="com.abc.A2BConverter" >
            <class-a>com.abc.ClassA</class-a>
            <class-b>com.abc.ClassB</class-b>
      </converter>
    </custom-converters>     
</configuration>`
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

java dozer

7
推荐指数
1
解决办法
3266
查看次数

推土机将HashMap <Key,Value>映射到List <Value>

我有一个源对象,它具有:

public class Source {
    public Map<String,DTO>getDTOs();
}
Run Code Online (Sandbox Code Playgroud)

和目标对象:

public class Destination {
    public List<DTO> getDTOs();
    public void setDTOs(List<DTO> dtos);
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用Dozer为我做这个映射,但我有点难过.我对单元测试和文档进行了分类,但我的挑战是我不确定我在寻找什么.

java mapping dozer

6
推荐指数
1
解决办法
9842
查看次数

推土机和弹簧整合

编辑:引入了一个新的lib,它澄清了新版本的内容

从版本5.5.0开始,Spring集成了额外的模块dozer-spring.


嗨,我对Dozer和Spring相对比较新,对于如何实现这一点感到有些困惑.

来自推土机网站:http://dozer.sourceforge.net/documentation/usage.html

Spring集成 ......

<bean id="mapper" class="org.dozer.DozerBeanMapper">
  <property name="mappingFiles">
    <list>
      <value>dozer-global-configuration.xml</value>            
      <value>dozer-bean-mappings.xml</value>
      <value>more-dozer-bean-mappings.xml</value>
    </list>
  </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

现在来自http://dozer.sourceforge.net/documentation/springintegration.html:

<bean class="org.dozer.spring.DozerBeanMapperFactoryBean">
    <property name="mappingFiles" value="classpath*:/*mapping.xml"/>
    <property name="customConverters">
        <list>
            <bean class="org.dozer.converters.CustomConverter"/>      
        </list>
    </property>
    <property name="eventListeners">
        <list>
            <bean class="org.dozer.listeners.EventListener"/>
        </list>
    </property>
    <property name="factories">
        <map>
            <entry key="id" value-ref="bean-factory-ref"/>
        </map>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

所以我不确定我应该使用哪种方式.我的目标是在我的业务类中有一个mapper对象,它将转换Business ObjectsDTO(反向).所以我认为它应该是一个基本的依赖注入?

谢谢你的帮助.

spring dozer

6
推荐指数
1
解决办法
1万
查看次数

为什么我们在Web应用程序中需要像dozer这样的bean到bean映射器

简单来说,为什么我们需要在Web应用程序中使用"bean to bean映射服务"(如Dozer).

假设我正在开发一项网络服务.

  1. 我正在收到请求中的XML.
  2. 我从XML元素中获取值.
  3. 对获取的值执行所需的操作.
  4. 准备响应XML.
  5. 将响应XML作为响应发送

为什么还要添加一个将XML元素映射到自定义元素的步骤.

我无法说服自己,可能是因为我无法想到更好的情况/原因.

如果可能的话,请举例说明.

java web-services dozer

6
推荐指数
1
解决办法
1196
查看次数

与 spring-boot-devtools 相关的类加载器问题

背景:Spring Boot项目,添加商品和商品价目表

Goods:
List<GoodsPrice> pricelist;
Run Code Online (Sandbox Code Playgroud)

在控制器中首先将货物形式转换为货物(通过推土机),然后保存货物,保存货物后迭代货物价目表以填充货物 ID。

goods.getPriceList().forEach(p -> p.setGoodsId(goods.getId()));
Run Code Online (Sandbox Code Playgroud)

迭代商品价目表时,抛出异常:

java.lang.ClassCastException: com.foo.goods.model.GoodsPrice cannot be cast to com.foo.goods.model.GoodsPrice
at com.foo.goods.service.GoodsService$$Lambda$11/310447431.accept(Unknown Source) ~[na:na]
at java.util.ArrayList.forEach(ArrayList.java:1249) ~[na:1.8.0_51]
at com.foo.goods.service.GoodsService.saveGoods(GoodsService.java:34) ~[classes/:na]
Run Code Online (Sandbox Code Playgroud)

有人提醒我这个与classloader有关的异常,在eclipse调试模式下,我输出了GoodsPrice的ClassLoader:

sun.misc.Launcher$AppClassLoader@14dad5dc
Run Code Online (Sandbox Code Playgroud)

和货物: org.springframework.boot.devtools.restart.classloader.RestartClassLoader@591c6338

确实存在差异类加载器。然后我评论spring-boot-devtools然后再次尝试这次没关系。那么如果仍然保留spring-boot-devtools,如何解决这个问题?

classloader dozer spring-boot

6
推荐指数
1
解决办法
5958
查看次数

使用推土机可以将多个字段映射到一个字段吗?

我们有一些我们试图映射的遗留数据......遗留数据包含月份日的字段...

是否可以转换

MyObject.day
MyObject.year
MyObject.month
Run Code Online (Sandbox Code Playgroud)

MyOtherObject.date
Run Code Online (Sandbox Code Playgroud)

我找不到关于这个主题的任何文件.任何人将不胜感激.

java dozer

6
推荐指数
1
解决办法
5796
查看次数

NoSuchMethodException:java.time.LocalDateTime.<init>()使用Super CSV读取CSV

我编写了一个实体,其中只包含一个LocalDateTime使用Super CSV的 CSV文件,ICsvDozerBeanWriter并且在使用a读取它时遇到错误ICsvDozerBeanReader.我能够成功读取和写入一个Date对象,但LocalDateTime无法正常工作.

我添加了super-csv-java8依赖项,写入部分似乎工作正常.

在这个Github仓库中创建了一个小型演示应用程序来复制问题.运行main()方法,错误将输出到控制台.

这是我得到的例外:

2016-12-09 22:24:02.427 ERROR 50405 --- [           main] org.dozer.MappingProcessor               : Field mapping error -->
  MapId: null
  Type: null
  Source parent class: org.supercsv.io.dozer.CsvDozerBeanData
  Source field name: columns
  Source field type: class java.time.LocalDateTime
  Source field value: 2016-12-09T22:24:02.226
  Dest parent class: com.example.Entity
  Dest field name: dateTime
  Dest field type: java.time.LocalDateTime

org.dozer.MappingException: java.lang.NoSuchMethodException: java.time.LocalDateTime.<init>()
    at org.dozer.util.MappingUtils.throwMappingException(MappingUtils.java:82) ~[dozer-5.4.0.jar:na]
    at org.dozer.factory.ConstructionStrategies$ByConstructor.newInstance(ConstructionStrategies.java:261) ~[dozer-5.4.0.jar:na]
    at org.dozer.factory.ConstructionStrategies$ByConstructor.create(ConstructionStrategies.java:245) ~[dozer-5.4.0.jar:na]
    at …
Run Code Online (Sandbox Code Playgroud)

java csv dozer java-8 supercsv

6
推荐指数
1
解决办法
7390
查看次数

推土机映射泛型类型

我想使用推土机将数据对象映射到基本相同的传输对象。对象包含一个通用字段。我希望通用字段映射到相同的类型,在这个例子中是整数。但是映射对象的泛型类型是 String。我正在使用推土机版本 6.0.0。如何映射泛型并保留类型?

数据对象:

public class DataObject<T> {
    T generic;

    public DataObject() {
    }

    public T getGeneric() {
        return generic;
    }

    public void setGeneric(final T generic) {
        this.generic = generic;
    }
}
Run Code Online (Sandbox Code Playgroud)

运输对象:

public class TransportObject<T> {
    T generic;

    public TransportObject() {
    }

    public T getGeneric() {
        return generic;
    }

    public void setGeneric(final T generic) {
        this.generic = generic;
    }
}
Run Code Online (Sandbox Code Playgroud)

映射测试:

import org.dozer.DozerBeanMapper;
import org.dozer.Mapper;
import org.junit.Assert;
import org.junit.Test;

import java.util.Arrays;
import java.util.List;

import static org.hamcrest.core.IsInstanceOf.instanceOf;

public class DozerGenericsTest …
Run Code Online (Sandbox Code Playgroud)

java generics mapping dozer

6
推荐指数
0
解决办法
883
查看次数