DATAREST-872 - PersistentEntityJackson2Module now serializes JsonTypeInfo correctly.

NestedEntitySerializer now overrides serializeWithType(…) so that @JsonTypeInfo is rendered properly.

Related pull request: #221.
This commit is contained in:
Alex Leigh
2016-09-14 18:29:53 -07:00
committed by Oliver Gierke
parent 216e267fce
commit c36267a447
8 changed files with 318 additions and 9 deletions

View File

@@ -79,6 +79,7 @@ import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer;
import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;
import com.fasterxml.jackson.databind.jsontype.TypeDeserializer;
import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.BeanPropertyWriter;
import com.fasterxml.jackson.databind.ser.BeanSerializerBuilder;
@@ -369,6 +370,13 @@ public class PersistentEntityJackson2Module extends SimpleModule {
}
}
@Override
public void serializeWithType(Object value, JsonGenerator gen, SerializerProvider provider,
TypeSerializer typeSerializer) throws IOException {
serialize(value, gen, provider);
}
private Resource<Object> toResource(Object value) {
PersistentEntity<?, ?> entity = entities.getPersistentEntity(value.getClass());