2011-08-17 103 views
0

我需要时间以“yyyyMMddHHmmss”格式为Hibernate 3.0。时间格式yyyyMMddHHmmss在休眠3.0

<property name="delayTime" column="DELAYTIME" type=""/> 

我需要指定类型以反映上述格式的时间?

+0

你想要什么?你是否希望java实体的'delayTime'属性是字符串格式'yyyyMMddHHmmss',并且它映射到一个DATE列,在DB中被称为'DELAYTIME'? –

+0

是的,DB列DELAYTIME采用日期格式。 java实体是字符串格式。 – TechFind

回答

0

听起来像是你想有一个org.hibernate.usertype.UserType

创建一个实现该接口,然后类:在方法

  1. nullSafeGet日期对象从数据库转换为字符串,例如使用的SimpleDateFormat

  2. 在方法nullSafeSet中做相反的处理。在保存到数据库之前,将您的字符串转换为日期对象。


其实上面的回答似乎有点小题大做。为什么不把日期保存为hibernate对象中的java.util.Date。那么你可以有这样的方法:

private Date date; 
public String getDate() { 
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YOUR_FORMAT); 
    return simpleDateFormat.format(date); 
} 
public void setDate() { 
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YOUR_FORMAT); 
    this.date = simpleDateFormat.parse(date); 
} 

Hibernate可以使用私人日期。剩下的代码可以使用String。

+0

org.hibernate.usertype.UserType显示hibernate3.5,它能在3.0版本上运行吗? – TechFind

+0

@kasim检查您的文档是否为3.0,但yes usertypes应该在那里工作。 – Heathen

+0

“Hibernate可以使用私有日期,其余的代码可以使用String。”即不需要在hbm.xml文件中指定日期格式类型?如果我不指定它会考虑为默认格式不是吗? – TechFind