当前位置:  开发笔记 > 编程语言 > 正文

如何在Hibernate中将日期保存为varchar?

如何解决《如何在Hibernate中将日期保存为varchar?》经验,为你挑选了1个好方法。

我必须将我的类定义映射到现有数据库,其中日期字段存储为varchar.

例如

class A {
    @Column
    Date birth;
}

如何对出生属性进行注释,以便将其正确映射到数据库varchar?

谢谢!



1> Alan Hay..:

JPA 2.1中引入的属性转换器功能正是针对这种情况.如果您的JPA提供程序符合JPA 2.1规范(对于Hibernate,我相信这是版本> = 4.3),那么您可以处理如下:

class A {
    @Column
    @Convert(converter = DateOfBirthConverter.class)
    private Date dateOfBirth;
}

转换器:

@Converter
public class DateOfBirthConverter implements AttributeConverter {

    @Override
    public String convertToDatabaseColumn(Date dateOfBirth) {
        return new SimpleDateFormat("MM/dd/yyyy").format(dateOfBirth);
    }

    @Override
    public Date convertToEntityAttribute(String dateOfBirth) {
        try{
            return new SimpleDateFormat("MM/dd/yyyy").parse(dateOfBirth);
        }
        catch(ParseException ex){
            return null;
        }
    }
}

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有