protected Set < String > hydrate ( Map < String , Object > attributesMap , boolean fireAfterLoad ) { Set < String > changedAttributeNames = new HashSet <> ( ) ; Set < String > attributeNames = metaModelLocal . getAttributeNames ( ) ; for ( Map . Entry < String , Object > entry : attributesMap . entrySet ( ) ) { if ( attributeNames . contains ( entry . getKey ( ) ) ) { if ( entry . getValue ( ) instanceof Clob && metaModelLocal . cached ( ) ) { String convertedString = Convert . toString ( entry . getValue ( ) ) ; if ( willAttributeModifyModel ( entry . getKey ( ) , convertedString ) ) { this . attributes . put ( entry . getKey ( ) , convertedString ) ; changedAttributeNames . add ( entry . getKey ( ) ) ; } } else { Object convertedObject = metaModelLocal . getDialect ( ) . overrideDriverTypeConversion ( metaModelLocal , entry . getKey ( ) , entry . getValue ( ) ) ; if ( willAttributeModifyModel ( entry . getKey ( ) , convertedObject ) ) { this . attributes . put ( entry . getKey ( ) , convertedObject ) ; changedAttributeNames . add ( entry . getKey ( ) ) ; } } } } if ( getCompositeKeys ( ) != null ) { compositeKeyPersisted = true ; } if ( fireAfterLoad ) { fireAfterLoad ( ) ; } return changedAttributeNames ; }
Hydrates a this instance of model from a map . Only picks values from a map that match this instance s attribute names while ignoring the others .