rosekissyou 2010-12-28
项目中用到了enum作为持久化对象的某个属性类型.我为了方便,就直接在数据库字段设置成varchar类型.数据库是mysql.但是在持久化的时候,hibernate会转换成int类型再存.我是想直接存.比如
public enum BatchJobState { NOT_START, // 未開始 RUNNING, // 運行 FINISHED, // 結束 FAILED // 失敗 }
我是想直接存NOT_START,这类的,但是hibernate就自动转成1,2,3.之类的.
网上查了些方法.无非是两种,一种是自己写UserType.这种方法很麻烦.不说了,我用的方法是第二种,使用annotation.具体的方法是
@Enumerated(EnumType.STRING) private BatchJobState state;// 任务的执行状态
这么一句.搞定.