@@ -158,7 +158,7 @@ public PropertyModel(ClassModel classModel, Property property, JsonbContext json
158158 this .setValueHandle = createWriteHandle (field , setter , setterVisible , strategy );
159159 this .getterMethodType = getterVisible ? property .getGetterType () : null ;
160160 this .setterMethodType = setterVisible ? property .getSetterType () : null ;
161- this .customization = introspectCustomization (property , jsonbContext );
161+ this .customization = introspectCustomization (property , jsonbContext , classModel );
162162 this .readName = calculateReadWriteName (customization .getJsonReadName (), propertyName ,
163163 jsonbContext .getConfigProperties ().getPropertyNamingStrategy ());
164164 this .writeName = calculateReadWriteName (customization .getJsonWriteName (), propertyName ,
@@ -191,11 +191,24 @@ private SerializerBinding<?> getUserSerializerBinding(Property property, JsonbCo
191191 return jsonbContext .getComponentMatcher ().getSerializerBinding (getPropertySerializationType (), null ).orElse (null );
192192 }
193193
194- private PropertyCustomization introspectCustomization (Property property , JsonbContext jsonbContext ) {
194+ private PropertyCustomization introspectCustomization (Property property , JsonbContext jsonbContext , ClassModel classModel ) {
195195 final AnnotationIntrospector introspector = jsonbContext .getAnnotationIntrospector ();
196196 final PropertyCustomization .Builder builder = PropertyCustomization .builder ();
197197 //drop all other annotations for transient properties
198198 EnumSet <AnnotationTarget > transientInfo = introspector .getJsonbTransientCategorized (property );
199+ ClassModel parent = classModel ;
200+ // Check parent classes for transient annotations
201+ while ((parent = parent .getParentClassModel ()) != null ) {
202+ PropertyModel parentProperty = parent .getPropertyModel (property .getName ());
203+ if (parentProperty != null ) {
204+ if (parentProperty .customization .isReadTransient ()) {
205+ transientInfo .add (AnnotationTarget .GETTER );
206+ }
207+ if (parentProperty .customization .isWriteTransient ()) {
208+ transientInfo .add (AnnotationTarget .SETTER );
209+ }
210+ }
211+ }
199212 if (transientInfo .size () != 0 ) {
200213 builder .readTransient (transientInfo .contains (AnnotationTarget .GETTER ));
201214 builder .writeTransient (transientInfo .contains (AnnotationTarget .SETTER ));
0 commit comments