2017-12-21 9 views
0

Ich bin mit MyBatis in Apache-Kamel.ObjectFactory und MyBatis, Mapping Ergebnis in JAXBElement <XmlGregorianCalendar>

Das Ergebnis der Abfrage enthält einige Daten im Format jdbcType = "DATE". Ich schrieb meine benutzerdefinierte ObjectTypeHandler, die Konvertierung zwischen SQL-Datum und XMLGregorianCalendar-Datentyp, die ich verwende, um Daten in JAXB-Objekt (generieren von Xsd-Schema) zu verwenden.

Das Problem ist, dass nicht alle Felder in der JAXB-Klasse rohen XMLGregorianCalendar-Wert akzeptieren, von denen einige so definiert sind, dass sie JAXBElement benötigen.

Ich kann ObjectFactory-Instanz verwenden, um dies zu lösen, aber dann müsste ich benutzerdefinierte ObjectTypeHandler für jedes Feld schreiben, das JAXBElement als Eingabe nimmt (da sie ihre eigene create * -Methode in ObjectFactory haben) und es gibt viele von ihnen. Es klingt nach einer Menge Standardcode und dupliziertem Code.

Ist es möglich, gnädiger damit umzugehen?

+1

Warum verwenden Sie nicht globale Bindungen (in xjb-Datei), wenn Sie JAXB-Objekte dafür generieren? Ich nehme an, XJC-Compiler wird es richtig behandeln. – Vadim

+0

@Vadim können Sie verknüpfen, wie globale Bindungen verwendet werden? – Dmitriy

Antwort

0

Ich löste dieses Problem @Vadim Empfehlung mit:

Definieren Sie einfach xjb Datei (mit generateElementProprety Satz false zu vermeiden Erzeugung von JAXBElement Wrapper) und liefert es an XJC Compiler während POJO Generation von XSD Schema.

Zum Beispiel:

bindings.xjb

<?xml version="1.0" encoding="UTF-8"?> 
<jaxb:bindings version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <jaxb:globalBindings generateElementProperty="false"/> 
</jaxb:bindings> 

starten XJC Compiler über den Befehl:

xjc *.xsd -d ../../java -b bindings.xjb 

Dieses Beispiel erzeugen POJO-Dateien in ../../java Verzeichnis von Schema-Dateien (*.xsd) befindet sich in Arbeitsverzeichnis mit zusätzlichen Einstellungen von bindings.xjb Datei.

Danke, @Vadim, für die richtige Richtung!

Verwandte Themen