मैं एक वसंत @RestController
पर अजाक्स पोस्ट का उपयोग करने की कोशिश कर रहा हूं। @Entity
के अंदर जैक्सन के पास @Json...Reference
एनोटेशन के साथ समस्याएं हैं (@Inheritance(strategy = InheritanceType.JOINED)
)।कस्टम JsonSerializer को सही तरीके से पंजीकृत कैसे करें?
मैंने इसके बारे में बहुत सारे प्रश्न और उत्तर देखे हैं। अभी तक, स्थायी रूप से मूल इकाई को बदलने की अनुमति नहीं है। मेरे पास मेरी स्थानीय प्रतिलिपि तक पहुंच है, और अस्थायी रूप से बदल सकती है, इसलिए मैं माता-पिता में एनोटेशन को हटाने की पुष्टि करने में सक्षम हूं, संभावित रूप से इसे किसी अन्य चीज़ को तोड़ने की लागत पर, संभवतः इसे ठीक कर सकता है। तो, मेरा समाधान एक कस्टम JsonSerializer
लागू करना है।
उस समस्या के साथ इसे कॉल नहीं किया जाता है; मुझे लगता है कि मैंने इसे देखा है जो मैंने देखा है। यहां सापेक्ष कोड है:
मैं AppConfig
फ़ाइल में @Bean
पंजीकृत करता हूं। मैंने विधि निकाय के लिए विविधता की कोशिश की है; यह केवल सबसे हालिया है जो काम नहीं करता है ...
@Bean
public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() {
SimpleModule m = new SimpleModule();
m.addSerializer(Orchard.class, new OrchardSerializer());
return new Jackson2ObjectMapperBuilder().modules(m);
}
मैं धारावाहिक प्रदान करता हूं; नीचे तोड़ने बिंदु शुरू हो रहा कभी नहीं रहा है ...
public class OrchardSerializer extends JsonSerializer<Orchard> {
@Override
public Class<Orchard> handledType() {
return Orchard.class;
}
@Override
public void serialize(Orchard orchard, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
throws JsonProcessingException {
System.out.println("Break on me...");
}
}
इकाई मैं पोस्ट करने के लिए कोशिश कर रहा हूँ ...
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@JsonSerialize(using = OrchardSerializer.class)
public class Orchard extends Yard {
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<Person> contacts;
@Column(name = "COUNT")
private Integer count;
...getters/setters
}
मैं एक कस्टम पंजीकरण कैसे करते JsonSerializer
तो यह एक अजाक्स पर बुलाया जाएगा पद?
संभव है, आपको कस्टम HttpMessageConverter की आवश्यकता है? –