java - 如何使用Annotation创建转换器?

标签 java annotations metadata data-annotations java-6

我想创建一个从 boolean 值转换为字符串的注释。例如

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”类型

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

所以类似:

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

关于java - 如何使用Annotation创建转换器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54136920/

相关文章:

java - SomeClass 和 SomeClass<?> 之间的区别

java - 如何使用 java 仅获取 mongodb 中文档的 objectId

java - struts.xml 标签结果类型的基于注释的配置替代方案

java - Android 5.0 ART native DeleteGlobalReference(jobject)失败

java - 在 Apache Camel LDAP 组件中对结果进行分页

java - 如何在java主程序中打印注解接口(interface)的默认值

java - 如何使用具有多列/复合主键(JPA 1.0 @IdClass)的表实现继承?

reactjs - Google 未显示 React-Helmet 标题和描述

python - 下载 youtube mp3 - 元数据编码问题(python、youtube-dl、ffmpeg)

bash - 如何在 Bash shell 脚本中访问自动命名的变量