@SuppressWarnings({ "unchecked", "rawtypes" }) @Override protected Builder<?> processJpaBeanProperty(Builder<?> property, Class<?> beanOrNestedClass) { if (!property.getConverter().isPresent()) { property.getAnnotation(Enumerated.class).ifPresent(a -> { final EnumType enumType = a.value(); if (enumType == EnumType.STRING) { ((Builder) property).converter(PropertyValueConverter.enumByName()); } else { ((Builder) property).converter(PropertyValueConverter.enumByOrdinal()); } LOGGER.debug(() -> "JpaEnumeratedBeanPropertyPostProcessor: setted property [" + property + "] value converter to default enumeration converter using [" + enumType.name() + "] mode"); }); } else { LOGGER.debug(() -> "JpaEnumeratedBeanPropertyPostProcessor: property [" + property + "] has a PropertyValueConverter [" + property.getConverter().get() + "]: skip JPA Enumerated annotation processing"); } return property; }
public void builtinConverters() { // tag::bultincnv[] PropertyValueConverter.numericBoolean(Integer.class); // <1> PropertyValueConverter.localDate(); // <2> PropertyValueConverter.localDateTime(); // <3> PropertyValueConverter.enumByOrdinal(); // <4> PropertyValueConverter.enumByName(); // <5> Property.Builder<Boolean, Property<Boolean>, ?> builder = getPropertyBuilder(); builder.converter(PropertyValueConverter.numericBoolean(Integer.class)); // <6> // end::bultincnv[] }