2017-10-26 5 views
0

DTOモデルから、JAXBで生成されたJAXBElement <ラッパーオブジェクトでいっぱいのデータモデルへのマッピングがあります。オリカファクトリがヌル値のオブジェクトを作成できないようにする

例えば、(ゲッターとセッターは省略)として定義されたクラスの人がある:

:私のObjectFactoryを作成JAXBElementのを構築するため

public class Name { 
    private String value; 
} 

public class Person { 
    private JAXBElement<Name> name; 
} 

名は以下のように定義されます

public class NameFactory extends ObjectFactory<JAXBElement<Name>> { 
    protected JAXBElement<Name> createObject(@Nonnull Class<?> context) { 
     // here, ObjectFactory is the JAXB generated ObjectFactory 
     return new ObjectFactory().createName(); 
    } 
} 

私のConfigurableMapperでは、PersonDtoからPerson likへのクラスマッピングを作成しますEこれ:この設定により

factory.createClassMap(PersonDto.class, Person.class) 
    .field("name", "name.value.value") 
    .register; 

、無名(名前がnullに等しい)を有するPersonDtoのマッピングはヌルに値が設定された名前のメンバを有する者要素になります。これはおそらく、より良いクラスのマッピングを行った後に生成されたXMLを示すことによって説明されています。私の場合は

<Person> 
    <Name> 
     <value></value> 
    </Name> 
</Person> 

は、このXMLが無効である、名前の要素がある場合、その値は常にnull以外でなければなりません。 XMLは、したがって、次のようになります。

<Person> 
</Person> 

は、その値がnullに設定されます知って、Nameオブジェクトを構築するからオリカを防止することが可能ですか?

答えて

0

晴れた日にもう一度コードを調べてみると、Orikaはラッパー要素を作成していないことがわかりました(私は期待しなかったように)、それはまったく別の問題でした...

関連する問題