Ajax yayınlarını Spring @RestController
ürününe kullanmaya çalışıyorum. Jackson'ın, (@Inheritance(strategy = InheritanceType.JOINED)
) adresinden gönderilen bir @Entity
içine @Json...Reference
ek açıklamaları ile ilgili sorunları vardır.Özel bir JsonSerializer düzgün bir şekilde nasıl kaydedilir?
Bu konuyla ilgili birçok soru ve cevap gördüm. Şu an itibariyle, ana öğeyi kalıcı olarak değiştirmeye izin verilmiyor. Yerel kopyasına erişimim var ve geçici olarak değiştirebiliyorum, böylece ebeveynin içindeki ek açıklamaların kaldırılmasının, muhtemelen başka bir şeyi kırma pahasına potansiyel olarak düzeltebileceğini doğrulayabiliyorum. Yani, benim çözümüm özel bir JsonSerializer
uygulamaktır.
Sorun şu ki; Sanırım gördüklerimden doğru bir şekilde yaptım. İşte göreceli kod:
AppConfig
dosyamda @Bean
dosyasını kaydediyorum. Yöntem gövdesi için varyasyonları denedim; Bu, çalışmayan en yeni biridir ...
@Bean
public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() {
SimpleModule m = new SimpleModule();
m.addSerializer(Orchard.class, new OrchardSerializer());
return new Jackson2ObjectMapperBuilder().modules(m);
}
Diziselleştiriciyi sağlıyorum; Aşağıdaki kırılma noktası yüzden bir Ajax çağrılacak JsonSerializer
...
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...");
}
}
ben göndermek için çalışıyorum varlık ... Ben özel bir kayıt nasıl
@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
}
tetiklenir asla sonrası?
Olası, özel HttpMessageConverter mi ihtiyacınız var? –