org.springframework.data.r2dbc.convert.EnumWriteSupport Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spring-data-r2dbc-dsl Show documentation
Show all versions of spring-data-r2dbc-dsl Show documentation
Spring Data DSL module for Web querying and Criteria building
/*
* Copyright 2020-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.r2dbc.convert;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.convert.WritingConverter;
/**
* Support class to natively write {@link Enum} values to the database.
*
* By default, Spring Data converts enum values by to {@link Enum#name() String} for maximum portability. Registering a
* {@link WritingConverter} allows retaining the enum type so that actual enum values get passed thru to the driver.
*
* Enum types that should be written using their actual enum value to the database should require a converter for type
* pinning. Extend this class as the {@link org.springframework.data.convert.CustomConversions} support inspects
* {@link Converter} generics to identify conversion rules.
*
* For example:
*
*
* enum Color {
* Grey, Blue
* }
*
* class ColorConverter extends EnumWriteSupport<Color> {
*
* }
*
*
* @author Mark Paluch
* @param the enum type that should be written using the actual value.
* @since 1.2
*/
@WritingConverter
public abstract class EnumWriteSupport> implements Converter {
/*
* (non-Javadoc)
* @see org.springframework.core.convert.converter.Converter#convert(java.lang.Object)
*/
@Override
public E convert(E enumInstance) {
return enumInstance;
}
}