Source:
<code>private void collectPropertyMetadataContributors(PropertyDelegatesCollector collector, Class<?> javaClass, Property property) { Value value = property.getValue(); if ( value instanceof org.hibernate.mapping.Collection ) { org.hibernate.mapping.Collection collectionValue = (org.hibernate.mapping.Collection) value; Value element = collectionValue.getElement(); String referencedEntityName = getReferencedEntityName( element ); String mappedByPath = collectionValue.getMappedByProperty(); if ( referencedEntityName != null && mappedByPath != null && !mappedByPath.isEmpty() ) { collector.collect( javaClass, new HibernateOrmAssociationInverseSideMetadataContributor( property.getName(), getExtractorPath( collectionValue ), resolveMappedByPath( referencedEntityName, mappedByPath ) ) ); } } else if ( value instanceof ToOne ) { ToOne toOneValue = (ToOne) value; String referencedEntityName = toOneValue.getReferencedEntityName(); String mappedByPath = toOneValue.getReferencedPropertyName(); if ( mappedByPath != null && !mappedByPath.isEmpty() ) { collector.collect( javaClass, new HibernateOrmAssociationInverseSideMetadataContributor( property.getName(), getExtractorPath( toOneValue ), resolveMappedByPath( referencedEntityName, mappedByPath ) ) ); } } else if ( value instanceof Component ) { collector.collect( javaClass, new HibernateOrmAssociationEmbeddedMetadataContributor( property.getName(), getExtractorPath( value ) ) ); Component componentValue = (Component) value; Class<?> componentClass = componentValue.getComponentClass(); if ( !collector.hasSeen( componentClass ) ) { collectPropertyDelegates( collector, componentClass, componentValue.getPropertyIterator() ); } } <START> else if ( value instanceof SimpleValue && value.getType() instanceof BigDecimalType ) { <END> collectScaleContributor( collector, javaClass, property, value ); } }</code><technical_language>Limiting this BigDecimalType a great idea. ORM users custom types. a custom type for BigDecimal, for example add a feature work a bug. Is reason apply this non-BigDecimal types? Besides fact useless of time</technical_language>

Target:
private void collectPropertyMetadataContributors(PropertyDelegatesCollector collector, Class<?> javaClass, Property property) { Value value = property.getValue(); if ( value instanceof org.hibernate.mapping.Collection ) { org.hibernate.mapping.Collection collectionValue = (org.hibernate.mapping.Collection) value; Value element = collectionValue.getElement(); String referencedEntityName = getReferencedEntityName( element ); String mappedByPath = collectionValue.getMappedByProperty(); if ( referencedEntityName != null && mappedByPath != null && !mappedByPath.isEmpty() ) { collector.collect( javaClass, new HibernateOrmAssociationInverseSideMetadataContributor( property.getName(), getExtractorPath( collectionValue ), resolveMappedByPath( referencedEntityName, mappedByPath ) ) ); } } else if ( value instanceof ToOne ) { ToOne toOneValue = (ToOne) value; String referencedEntityName = toOneValue.getReferencedEntityName(); String mappedByPath = toOneValue.getReferencedPropertyName(); if ( mappedByPath != null && !mappedByPath.isEmpty() ) { collector.collect( javaClass, new HibernateOrmAssociationInverseSideMetadataContributor( property.getName(), getExtractorPath( toOneValue ), resolveMappedByPath( referencedEntityName, mappedByPath ) ) ); } } else if ( value instanceof Component ) { collector.collect( javaClass, new HibernateOrmAssociationEmbeddedMetadataContributor( property.getName(), getExtractorPath( value ) ) ); Component componentValue = (Component) value; Class<?> componentClass = componentValue.getComponentClass(); if ( !collector.hasSeen( componentClass ) ) { collectPropertyDelegates( collector, componentClass, componentValue.getPropertyIterator() ); } } else if ( value instanceof SimpleValue ) { collectScaleContributor( collector, javaClass, property, value ); } }