hibernate对enum的持久化(使用annotation)

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;// 任务的执行状态

这么一句.搞定.

相关推荐