Enum के लिए मैं ऐसे enum है:डोजर स्ट्रिंग मानचित्रण
public enum PartnershipIndicator {
VENDOR("VENDOR"), COPARTNER("COPARTNER"), BUYER("BUYER");
String code;
private PartnershipIndicator(String code) {
this.code = code;
}
public String getCode() {
return code;
}
public static PartnershipIndicator valueOfCode(String code) {
for (PartnershipIndicator status : values()) {
if (status.getCode().equals(code)) {
return status;
}
}
throw new IllegalArgumentException(
"Partnership status cannot be resolved for code " + code);
}
@Override
public String toString() {
return code;
}
}
मैं इसे स्ट्रिंग के लिए और इसके विपरीत बदलना होगा। अब, यह कस्टम कनवर्टर द्वारा किया जाता है। लेकिन मैं इसे डोजर मैपिंग के माध्यम से करना चाहता हूं (यदि यह संभव है)। अगर मैं डोजर को स्वीकार करने के लिए कोई मैपिंग नहीं लिखता, तो मुझे
org.dozer.MappingException: java.lang.NoSuchMethodException: by.dev.madhead.demo.test_java.model.PartnershipIndicator.<init>()
अपवाद मिलता है। मैं enum के लिए डिफ़ॉल्ट सार्वजनिक कन्स्ट्रक्टर नहीं जोड़ सकता, क्योंकि यह संभव नहीं है। इसलिए, मैंने आंतरिक कोड और valueOfCode()/toString() के साथ एक चाल लिखा था। यह काम नहीं करता। फिर, मैंने इसे डोजर कॉन्फ़िगरेशन में मैप किया है:
<mapping>
<class-a>java.lang.String</class-a>
<class-b create-method="valueOfCode">by.dev.madhead.demo.test_java.model.PartnershipIndicator</class-b>
</mapping>
यह काम नहीं करता है। मैंने valueOfCode(), एक तरफा मैपिंग की कोशिश की। कुछ भी काम नहीं करता है। स्ट्रिंग रूपांतरण के लिए Enum भी काम नहीं करता है, मैं खाली स्ट्रिंग मिलता है। कोई विचार?
मैंने अपना कस्टम कनवर्टर डोजर मास्टर में जोड़ा है। तो 5.4 से कोई भी इस समस्या का सामना नहीं करेगा :) – madhead
@all क्या कोई इसे देख सकता है [प्रश्न] (http://stackoverflow.com/questions/27864640/dozer-string-to-date-field-level-mapping-for -ए-सूची) – 09Q71AO534