hibernate enum映射详解
hibernate enum映射详解
在这里介绍注解的形式,如果想要了解XML配置的方式,可以自行查找相关资料。
例如以下Entity
@Entity
@Table(name = "t_user")
public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = -9042615274714038279L; @Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id; @Column(name = "name")
private String name; @Column(name = "password")
private String password; @Column(name = "age")
private Integer age; @Column(name = "gender")
//@Convert(converter = Genderconverter.class) //属性类型转换器,该配置映射到数据库后是自定的类型,例如保存性别是保存M/F,男/女
//@Enumerated(EnumType.ORDINAL) //该配置映射保存到数据库后保存的是序号,从0开始
//@Enumerated(EnumType.STRING) //该配置映射保存到数据后保存的String类型,例如MALE/FEMALE等
private Gender gender; public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name == null ? null : name.trim();
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password == null ? null : password.trim();
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public Gender getGender() {
return gender;
} public void setGender(Gender gender) {
this.gender = gender;
} @Override
public String toString() {
return "User[id=" + id + ", name=" + name + ",age=" + age + ", gender=" + gender + "]";
}
}
Gender
/**
* 性别
* @author daniel.zhao
*
*/
public enum Gender { MALE("M"),
FEMALE("F"); private String code; private Gender(String code) {
this.code = code;
} public String getCode() {
return code;
} public void setCode(String code) {
this.code = code;
} public static Gender fromString(String code) {
Objects.requireNonNull(code, "Gender code must not be null!");
if (Gender.MALE.code.equals(code)) {
return Gender.MALE;
}
if (Gender.FEMALE.code.equals(code)) {
return Gender.FEMALE;
}
return null;
}
}
GenderConverter
@Converter
public class Genderconverter implements AttributeConverter<Gender, String> { @Override
public String convertToDatabaseColumn(Gender attribute) {
return attribute.getCode();
} @Override
public Gender convertToEntityAttribute(String dbData) {
return Gender.fromString(dbData);
} }
使用以上方法可以映射保存对应的枚举类型到数据表中。
hibernate enum映射详解的更多相关文章
- hibernate关联关系映射详解
词汇解释 关系:事物之间相互作用.相互联系的状态.范围最大. 联系:在关系数据库中表示实体与实体之间的联系,1:1,1:n,m:n. 关联:表示对象之间的关系,既有数量性,又有方向性:动词:将对象之间 ...
- 【ORM】--FluentNHibernate之基本映射详解
最近在做项目的时候用到了NHibernate,使用它并不困难,但是很麻烦.如果我的数据库有几百张表如果想要一个个的映射岂不是很麻烦,所以这种情况下使用NHibernate就会很笨重,虽然 ...
- (转)Hibernate的配置详解
http://blog.csdn.net/yerenyuan_pku/article/details/65041077 在<Hibernate快速入门>一文中,我有讲到Hibernate的 ...
- Hibernate Session & Transaction详解
Hibernate Session & Transaction详解 HIbernate中的Session Session是JAVA应用程序和Hibernate进行交互时使用的主要接口,它也是持 ...
- Java Enum用法详解
Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...
- elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)
一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...
- hibernate缓存机制详解
hiberante面试题—hibernate缓存机制详解 这是面试中经常问到的一个问题,可以按照我的思路回答,准你回答得很完美.首先说下Hibernate缓存的作用(即为什么要用缓存机制),然后再 ...
- elasticsearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解
一.快速入门1. 查看集群的健康状况http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 状 ...
- JS数组映射详解
现在这里占个坑位,免的忘了,需要整理一下最近的内容: 1.数组映射的使用 2.微信分享功能详解 3.jq自己封装 4.HTML的富文本应用
随机推荐
- Activiti工作流引擎简介
Activiti工作流引擎简介 一.概述 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活 ...
- Bitmap 位图
转自: http://dongxicheng.org/structure/bitmap/ 1. 概述 位图(bitmap)是一种非常常用的结构,在索引,数据压缩等方面有广泛应用.本文介绍了位图的实现 ...
- SQL——DDL简单语句
基于MySQL的: status 命令查看MySQL当前信息 show databases; 命令列出所有数据库模式 use test; use命令切换到指定数据库模式 show tables; 列出 ...
- CentOS6.4x86EngCustomize120g__20160307.rar
安装的镜像包: CentOS-6.4-i386-bin-DVD1to2(CentOS-6.4-i386-bin-DVD1.iso / CentOS-6.4-i386-bin-DVD2.iso) 1. ...
- [转]Cryengine渲染引擎剖析
转篇Napoleon314 大牛的分析,排版好乱,见谅,耐心读,这是个好东西,注意看他自己的实现,是个技术狂人啊,Ogre焕发次时代的光芒啊~~~努力 ------------------------ ...
- DWZ 框架详解
这是一个智障的框架,能别用就别用.
- hive grouping sets 等聚合函数
函数说明: grouping sets 在一个 group by 查询中,根据不同的维度组合进行聚合,等价于将不同维度的 group by 结果集进行 union allcube 根据 group b ...
- Linux网络编程--洪水攻击详解
洪水攻击详解 ①注解:洪水攻击(FLOOD ATTACK)是指利用计算机网络技术向目标主机发送大量无用的数据报文,使得目标主机忙于处理无用的数据报文而无法提供正常服务的网络行为. 主要原理:利用了网络 ...
- OleDbCommand使用参数应该注意的地方
最近写程序用到OleDbCommand的Parameter写数据库,遇到很多问题: 1.OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework 数据提供程序 ...
- Leetcode 35
//在数组最后插入INT_MAX是个好方法class Solution { public: int searchInsert(vector<int>& nums, int targ ...