पर एकाधिक उपप्रकारों को कैसे मैप करें I जैक्सन 1.9.x का उपयोग कर रहा हूं। पशु उदाहरण पर बने रहना, यहाँ मैं क्या करना चाहते हैं क्या करना है:जैक्सन पॉलिमॉर्फिज्म: एक ही कक्षा
चलो कहते हैं कि मैं एक पशु वर्ग करते हैं:
public class Animal {
private String type;
// accessors
}
public class Mammal extends Animal {
private String diet;
// accessors
}
public class Bird extends Animal {
private boolean tropical;
// accessors
}
मैं चाहूँगा इस तरह कुछ करने के लिए सक्षम होने के लिए (मैं कहाँ नक्शा एक वर्ग के लिए कुछ उपप्रकार है, और कुछ और एक अलग वर्ग के लिए):
@JsonTypeInfo(use = Id.NAME, include = As.PROPERTY, property = "type")
@JsonSubTypes({@JsonSubTypes.Type(value = Mammal.class, name = "Dog"),
@JsonSubTypes.Type(value = Mammal.class, name = "Cat"),
@JsonSubTypes.Type(value = Bird.class, name = "Dodo"},
@JsonSubTypes.Type(value = Bird.class, name = "Cockatoo"})
public class Animal {
}
क्या मैं अभी दिखाई दे रही है कि जैक्सन केवल कुत्ते-टू-स्तनपायी और दोदो करने वाली चिड़िया पहचान लेंगे है मानचित्रण। ऐसा इसलिए है क्योंकि StdSubtypeResolver._collectAndResolve() केवल उसी वर्ग को पंजीकृत होने की अनुमति देता है (NamedType.equals() के कार्यान्वयन के कारण)।
क्या मैं देख रहा हूं कि इस मुद्दे पर कोई कामकाज है?
[यह] (http://www.cowtowncoder.com/blog/archives/2010/03/entry_372.html) संबंधित लगता है ... – jahroy
मैं स्वीकार्य उत्तर के रूप में StaxMan के उत्तर को चिह्नित कर रहा हूं, लेकिन वास्तव में यह वास्तव में है वह विचार जिस पर उन्होंने चर्चा की थी, जिसे मैं लागू करने की योजना बना रहा हूं। अभी के लिए मेरे पास जैक्सन-डाटाबेस मुद्दे ट्रैकर को आरएफई दर्ज करने की कोई योजना नहीं है। –