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