我有一个推土机映射,通过参数自定义转换器返回用户。这是应该的,但现在这个用户应该转换为官方。推土机 - 在转换器后调用映射器
我试图通过让转换器返回用户并使另一个推土机xml文件将用户转换为官方来做到这一点。我将这个xml文件添加到了dozerfactory,但它似乎没有被调用。
我得到:“Exepected Official,actual:User”。我怎么能让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;
}
}
无法正确回答您的问题。转换器似乎返回一个'用户',以及第一个和第二个推土机如何相关。你可以修改你的问题以提供清晰的图片吗? – sakura
@sakura“这个应该可以,但是现在这个用户应该转换成官员。”用户必须转换为官方 - >第二个推土机文件。 – GregD
然后,不用介绍一个新的推土机文件,为什么不修改您的customconverter以返回一个官员。我现在看到它返回一个用户。 – sakura