xin*_*ing 1 datetime varchar hibernate jpa persist
我必须将我的类定义映射到现有数据库,其中日期字段存储为varchar.
例如
class A {
@Column
Date birth;
}
Run Code Online (Sandbox Code Playgroud)
如何对出生属性进行注释,以便将其正确映射到数据库varchar?
谢谢!
JPA 2.1中引入的属性转换器功能正是针对这种情况.如果您的JPA提供程序符合JPA 2.1规范(对于Hibernate,我相信这是版本> = 4.3),那么您可以处理如下:
class A {
@Column
@Convert(converter = DateOfBirthConverter.class)
private Date dateOfBirth;
}
Run Code Online (Sandbox Code Playgroud)
转换器:
@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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |