package javax.persistence;

import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Repeatable(Converts.class)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Convert {
    Class converter() default void.class;

    String attributeName() default "";

    boolean disableConversion() default false;
}
// Converter
public class GenderConverter implements AttributeConverter<Gender, String> {

    /*
    * 데이터베이스에 요청을 보낼 때 Gender.MAN -> "m"
    * */
    @Override
    public String convertToDatabaseColumn(Gender attribute) {
        if (attribute == null) {
            return null;
        }
        return attribute.getValue();
    }

    /*
    * 데이터베이스에서 값을 읽어올 때 "m" -> Gender.MAN
    * */
    @Override
    public Gender convertToEntityAttribute(String dbData) {
        if (dbData == null) {
            return null;
        }
        return Gender.getGender(dbData);
    }
}

'Info' 카테고리의 다른 글

[윈도우11] MariaDB 설치  (0) 2024.06.02
H2 insert Error  (0) 2024.06.01
graviton  (0) 2024.05.28
Endpoint  (0) 2024.05.28
[window11] h2 database 생성  (0) 2024.05.26

+ Recent posts