在hibernate中将枚举映射到string
我有一个类Hibernate模型:
@Entity @Table(name = "category") public class Category { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "id") private long id; @Column(name = "type") private String type;
其中有一个stringtypes字段。 另外我有一个Java枚举代表一个类别的types:
public enum CategoryType { INCOME, OUTCOME; }
我想用来代替stringtypes。 SQL在varchar参数中接受两个不同的值: CategoryIncome
或者CategoryOutcome
。 我希望类模型类接受一个枚举variables – 并将其映射到string,每当hibernate请求它。
可能吗?
是的,是可能的。 它应该是:
@Enumerated(EnumType.STRING) @Column(name = "category_type") private CategoryType categoryType;
枚举类
public enum LevelPriority{ HIGH, MEDIUM, LOW }
Java类
public class AvisosVO implements Serializable { /** * */ private static final long serialVersionUID = 5372875132849315024L; @Id @GeneratedValue @Column(name = "id") private Integer idAVisosVO; private LevelPriority priority; @Enumerated(EnumType.STRING) public LevelPriority getPriority() { return priority; }
BD
CREATE TABLE `Avisos` ( `id` int(11) NOT NULL AUTO_INCREMENT, `priority` int(4) NOT NULL, PRIMARY KEY (`id`) )
我有一个项目中的代码,它的工作原理。 希望这个例子能够比顶端的评论更好地解释你的问题。
- 在Hibernate中重新挂接分离对象的正确方法是什么?
- org.hibernate.Query中的setMaxResults和setFetchSize有什么区别?
- 枚举在hibernate
- 在Hibernate中persist()vs save()的优点是什么?
- 什么是Hibernate的一级和二级caching?
- 春季hibernate – 无法获取当前线程的事务同步会话
- buildSessionFactory()在hibernate 4中被弃用了吗?
- Spring 3.1inheritance的Hibernate 4exception
- Hibernate Criteria使用FetchType.EAGER多次返回子项