From afe51abac466cf48822330606c8e406f3f6aa50c Mon Sep 17 00:00:00 2001 From: peruzzo Date: Tue, 29 Dec 2015 06:25:20 -0200 Subject: [PATCH] correction suggestion to issue #70 --- .../hibernate4/HibernateProxySerializer.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateProxySerializer.java b/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateProxySerializer.java index 79869f85..ca6eda1a 100644 --- a/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateProxySerializer.java +++ b/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateProxySerializer.java @@ -6,9 +6,11 @@ import com.fasterxml.jackson.core.*; import com.fasterxml.jackson.databind.BeanProperty; +import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.jsontype.TypeSerializer; +import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap; import org.hibernate.engine.spi.Mapping; @@ -27,6 +29,7 @@ */ public class HibernateProxySerializer extends JsonSerializer + implements ContextualSerializer { /** * Property that has proxy value to handle @@ -66,6 +69,16 @@ public HibernateProxySerializer(boolean forceLazyLoading, boolean serializeIdent _property = null; } + public HibernateProxySerializer(boolean forceLazyLoading, boolean serializeIdentifier, Mapping mapping, BeanProperty property) { + _forceLazyLoading = forceLazyLoading; + _serializeIdentifier = serializeIdentifier; + _mapping = mapping; + _dynamicSerializers = PropertySerializerMap.emptyForProperties(); + _property = property; + } + + + /* /********************************************************************** /* JsonSerializer impl @@ -165,4 +178,10 @@ protected Object findProxied(HibernateProxy proxy) } return init.getImplementation(); } + + @Override + public JsonSerializer createContextual(SerializerProvider prov, BeanProperty property) + throws JsonMappingException { + return new HibernateProxySerializer(this._forceLazyLoading, this._serializeIdentifier, this._mapping, property); + } }