我有一個推土機映射,通過參數自定義轉換器返回用戶。這是應該的,但現在這個用戶應該轉換爲官方。推土機 - 在轉換器後調用映射器
我試圖通過讓轉換器返回用戶並使另一個推土機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