如何使用注释创建转换器?

How create a converter with Annotation?

我想创建一个从布尔值到字符串的转换器的注释。例如

public User {
    @Id
    @Column(name="user_name")
    private String name;

    @Column(name="active")
    //This the CustomAnnotation
    @ConvertMyBooleanToString
    private boolean isActive;
}

我的自定义注释

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME) 
public @interface ConvertMyBooleanToString {
    //empty
}

某处实施

...
return valueFieldThatHasAnnotation ? "Yes" : "No";
...

所以,我不知道如何实现这个注释,以便每次在保存到数据库之前,它都会转换为字符串。

谢谢大家!

你是如何持久化到数据库的?如果你使用的是hibernate,有一个内置的"yes_no" type

yes_no: A type that maps an SQL CHAR(1) to a Java Boolean.

所以像这样:

@Type(type="yes_no")
public boolean isActive;