Java 推土机-在转换器后调用映射器

Java 推土机-在转换器后调用映射器,java,dozer,Java,Dozer,我有一个dozer映射,通过参数通过自定义转换器返回用户。这是应该的,但是现在这个用户应该被转换成一个正式用户 我试图通过让转换器返回用户并生成另一个dozer xml文件来将用户转换为正式用户来实现这一点。我将这个xml文件添加到dozerfactory中,但它似乎没有被调用 我得到:特例官员,实际:用户。如何调用userToOfficial.xml文件 第一个推土机文件: <mapping> <class-a>be.someClass</class-a>

我有一个dozer映射,通过参数通过自定义转换器返回用户。这是应该的,但是现在这个用户应该被转换成一个正式用户

我试图通过让转换器返回用户并生成另一个dozer xml文件来将用户转换为正式用户来实现这一点。我将这个xml文件添加到dozerfactory中,但它似乎没有被调用

我得到:特例官员,实际:用户。如何调用userToOfficial.xml文件

第一个推土机文件:

<mapping>
<class-a>be.someClass</class-a>
<class-b>be.anotherClassWithOfficial</class-b>


<field custom-converter-id="OfficialConverter">
  <a>someString</a>
  <b>official</b>
</field>
已尝试添加,但不起作用:

<b-hint>be.Official</b-hint>
第二个推土机文件应在转换器后调用,但不是:

<mapping>
<class-a>be.User</class-a>
<class-b>be.Official</class-b>
<field>
  <a>mail</a>
  <b>email</b>
</field>
转换器:

public class OfficialConverter implements CustomConverter {

/** The ldap local. */
private UserLocal userLocal;

@Override
public Object convert(Object existingDestinationFieldValue, Object sourceFieldValue,
        Class < ? > destinationClass, Class < ? > sourceClass) {
    if (sourceFieldValue == null) {
        return null;
    }
    if (sourceFieldValue instanceof String) {
        User user= userLocal
                .getUserByLogin((String) sourceFieldValue);
        return user;

    }
    return null;
}

public UserLocal getUserLocal() {
    return userLocal;
}


public void setUserLocal(UserLocal userLocal) {
    this.userLocal= userLocal;
}

}

根据您的customconverter,似乎您正在从字符串映射到用户,现在您想要的是Official对象,而不是用户。正当您希望使用推土机自动完成用户到办公室的转换。正当如果是,则需要使用mapper.map方法在自定义转换器中调用新推土机。您当前的用例不会自动调用它

无法正确回答您的问题。转换器似乎返回一个用户,以及第一个和第二个推土机的关联方式。你能修改你的问题以给出一个清晰的画面吗?@sakura这是它应该工作的,但是现在这个用户应该被转换成一名官员。用户必须转换为一个官方文件->第二个推土机文件。然后,与其引入一个新的推土机文件,不如修改customconverter以返回一个官方文件。我现在看到它返回了一个用户。因为,那么,我必须手动将用户设置为官方,那么使用推土机的意义何在?