hibernate 属性定义为Enum型
来源:互联网 发布:mac os x 升级 编辑:程序博客网 时间:2024/06/05 01:12
一、直接使用枚举类(不推荐)
1.定义枚举类 Gender
public enum Gender { MALE(0, "男"), FEMALE(1, "女"); private Integer constant; private String message; private Gender(Integer constant, String message) { this.constant = constant; this.message = message; } public Integer getConstant() { return constant; } public void setConstant(Integer constant) { this.constant = constant; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; }}
2.定义实体类 Teacher
@Entity@Table(name = "t_teacher")public class Teacher { public Teacher() { } public Teacher(String name, Gender gender) { this.name = name; this.gender = gender; } @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @Column private String name; @Column private Gender gender; @OneToMany(fetch = FetchType.LAZY, mappedBy = "id") @OrderBy(value = "id") private List<Course> courseList; // 此处 省略getter和setter方法}
3.插入数据
@Service("queryService")public class QueryService extends BaseDao { private Session session; @Before public void init() { ApplicationContext context = new ClassPathXmlApplicationContext("spring/applicationContext.xml"); session = ((QueryService) context.getBean("queryService")).getSession(); Assume.assumeTrue(true); } @Test @Transactional public void insertDatas() { Teacher teacher01 = new Teacher("王可可", Gender.MALE); Teacher teacher02 = new Teacher("李小丽", Gender.FEMALE); session.save(teacher01); session.save(teacher02); }}为了便于测试,我使用了Junit,在这里执行insertDatas方法
4.查看数据库
5.结论
hibernate中直接使用Enum作为实体类的字段类型,数据库中该字段会按照Enum值的顺序(从0开始)存储数据。
例:Gender的定义顺序是 >MALE >FEMALE, 所以MALE对应值(0),FEMALE对应值(1)。
二、使用枚举值的名称
1.修改实体类 Teacher
@Entity@Table(name = "t_teacher")public class Teacher { public Teacher() { } public Teacher(String name, Gender gender) { this.name = name; this.gender = gender; } @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @Column private String name; @Column @Enumerated(EnumType.STRING) private Gender gender; @OneToMany(fetch = FetchType.LAZY, mappedBy = "id") @OrderBy(value = "id") private List<Course> courseList; // 省略 setter和getter方法}枚举类的注解增加 @Enumerated(EnumType.STRING)。
2.插入数据(同方案一 步骤3)
3.查看数据库 0 0
- hibernate 属性定义为Enum型
- Hibernate 映射枚举(Enum) 类型的属性
- Hibernate 实现Enum转换为Smallint
- enum 定义
- Hibernate enum
- enum类型的变量定义为一个字节存储
- Hibernate将Enum枚举类型映射为Int类型
- Hibernate将Enum枚举类型映射为Int类型
- hibernate属性集合为组件
- Enum 类定义
- 定义enum,我用struct { enum Type{};};
- hibernate使用enum类型。
- hibernate enum映射
- Hibernate如何映射enum
- hibernate映射Enum
- 把ADO类导出为DLL时碰到enum”类型重定义 的问题
- Hibernate将Enum枚举类型映射为Int类型(补充VARCHAR类型配置)
- ADO ENUM 重定义问题
- 【demo积累】— 使用JFreeChart创建基于web的图表
- get()与eq()的区别??
- 国家语言参考表
- sed
- gearman 入门使用笔记
- hibernate 属性定义为Enum型
- Android新手入门安卓Day5-2
- mac 上传文件到 linux
- 查准率查全率ROC曲线、PR曲线
- 从相机或相册获取照片并进行裁剪(网上代码整理)
- AndroidStudio给类设置模版
- 当ScrollView中嵌套ListView时出现的问题
- JSON数据解析之Object
- LightOJ-1095-math