Raupen-mapping innere Klassen
Muss ich map-Klasse A in Klasse C mit Raupen-Rahmen.
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 getFieldc1() {
return fieldc1;
}
public void setFieldc1(String fieldc1) {
this.fieldc1 = fieldc1;
}
public String getFieldc2() {
return fieldc2;
}
public void setFieldc2(String fieldc2) {
this.fieldc2 = fieldc2;
}
}
}
XML-mapping-Datei:
<mapping wildcard="false" map-null="false" map-id="test">
<class-a>test.A</class-a>
<class-b>test.B.C</class-b>
<field>
<a>fielda1</a>
<b>fieldc1</b>
</field>
<field>
<a>fielda1</a>
<b>fieldc2</b>
</field>
</mapping>
Wenn ich versuche, eine Karte dieser Klassen bekam ich folgende exception:
org.dozer.MappingException: java.lang.ClassNotFoundException: test.B.C
at org.dozer.util.MappingUtils.throwMappingException(MappingUtils.java:88)
at org.dozer.util.DefaultClassLoader.loadClass(DefaultClassLoader.java:33)
Es die Nähte, die Raupe ist nicht fähig, sich zu handhaben dieser situation und verwendet die Klasse B als Paket-name. Dieses Problem kann gelöst werden, mit benutzerdefinierten Konvertern. Ich möchte nur wissen, gibt es irgendeinen trick, der verwendet werden könnte zu konvertieren, diese Klassen einfach mit XML-Konfiguration ?
bei StackOverflow ist es üblich, upvote die Antworten haben dir geholfen, die meisten. Zusätzlich ist es auch üblich, die Antwort akzeptieren, dass mehr umfassend geholfen, Ihr problem zu lösen. Sie upvote eine Antwort mit dem oberen Pfeil Links neben der Antwort (die Anzahl der Stimmen erhöht sich um 1). Sie akzeptieren die Antwort, indem Sie auf das Häkchen unterhalb der Antwort, damit es grün leuchtet.
InformationsquelleAutor dino.keco | 2010-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie es mit
test.B$C
wie im folgenden Beispiel:Beachten Sie auch, dass ich geändert, das zweite Feld aus
fielda1
zufielda2
war es ein Tippfehler in deinem Beispiel.Hinweis:, Weil Sie
map-id="test"
müssen SiemapId
wenn Sie anrufen Karte wie in:Ich getestet und das funktioniert richtig:
A.java
B.java
mapping.xml
Main.java
Diese Ausgaben in der Konsole:
froh zu helfen. bitte upvote und akzeptieren Sie die Antwort als pro StackOverflow-Konventionen. Siehe mein Kommentar in deiner Frage oben.
InformationsquelleAutor Jorge Ferreira