2010-06-23 10 views
5

मेरे पास एक स्कीमा खंड है जोहाइपर जैक्सबी 3 और एक्सएसडी: कोई टाइप टाइप करें

<xs:element name="dataValue"> 
     <xs:complexType> 
      <xs:sequence>   
       <xs:element name="value" type="xs:anyType"\> 
      </xs:sequence> 
     </xs:complexType> 
</xs:element> 

जैसा दिखता है हाइपरजेक्सबी 3 द्वारा उत्पादित कक्षा में निम्नलिखित खंड शामिल हैं:

@XmlElement(required = true) 
protected Object value; 

@Transient 
public Object getValue() { 
    return value; 
} 

public void setValue(Object value) { 
    this.value = value; 
} 

@Basic 
@Column(name = "VALUEOBJECT") 
public String getValueObject() { 
    if (JAXBContextUtils. 
     isMarshallable("org.lcogt.schema", this.getValue())) { 
     return JAXBContextUtils.unmarshall("org.lcogt.schema", this.getValue()); 
    } else { 
     return null; 
    } 
} 

मैं समझता हूं कि हाइबरनेट एक शुद्ध ऑब्जेक्ट को बनाए रखने के लिए संघर्ष करेगा, इसलिए हाइपरजेक्सब यह मान रहा है कि ऑब्जेक्ट को एक्सएमएल स्ट्रिंग के लिए unmarshalled किया जा सकता है और परिणामस्वरूप स्ट्रिंग जारी है। मेरे मामले में यह सच नहीं है लेकिन मैं गारंटी दे सकता हूं कि toString() विधि कुछ उपयोगी लौटाएगी। मैं जेनरेट कोड को और अधिक दिखाना चाहता हूं:

@XmlElement(required = true) 
protected Object value; 

@Transient 
public Object getValue() { 
    return value; 
} 

public void setValue(Object value) { 
    this.value = value; 
} 

@Basic 
@Column(name = "VALUEOBJECT") 
public String getValueObject() { 
     return value.toString(); 
} 

क्या वैसे भी मैं इस प्रभाव या कुछ समान प्राप्त कर सकता हूं?

धन्यवाद,

मार्क।

उत्तर

0

समस्या इस रूपांतरण द्विदिश होना चाहिए है: आप भी स्ट्रिंग से वापस अपने वस्तु "पार्स" में सक्षम होना चाहिए - अन्यथा आप अपने वस्तु वापस नहीं मिलेगा। तो toString() पर्याप्त नहीं है (लेकिन यह शुरू करने के लिए एक आदर्श जगह है)।

मुझे लगता है कि कस्टम एडेप्टर के साथ हल किया जा सकता है। अर्थात। आप इस संपत्ति के लिए अपना खुद का एडाप्टर लिखते हैं और कॉन्फ़िगर करते हैं। एडाप्टर आपके प्रकार के लिए toString()/fromString(...) करेगा।

http://jira.highsource.org/browse/HJIII-54

+0

मैं hyperjaxb3 के बारे में मेरे दूसरे पोस्ट करने के लिए एक संपादन के रूप में कुछ प्रिंट स्क्रीन पोस्ट:

यहाँ एक मुद्दा है। कमांड लाइन का कहना है कि निर्माण भले ही इरादा जावा फ़ाइल उत्पन्न नहीं कर रहा था एक सफलता है। वहाँ एक लापता पुस्तकालय के बारे में एक चेतावनी है, लेकिन चेतावनी बनी रहती है मैं एम 2 भंडार में मजबूर पुस्तकालय की एक फिर से डाउनलोड करें और दोबारा कोशिश की बाद भी। आपके कोड में एक विशिष्ट पंक्ति संख्या दी गई है। क्या आप इसके साथ मेरी मदद करने के इच्छुक हैं? यहाँ लिंक है: http://stackoverflow.com/questions/25676731/hyperjaxb3-not-generating-files – CodeMed

संबंधित मुद्दे