这个东西搞了好久,不难,但小细节没注意到一直不对,现在终于做出来了,赶紧记下。

下面是实体类User与对应的表user之间的映射:

1. 准备数据库表user

SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`gender` int(3) NOT NULL,
`level` int(1) NOT NULL,
`birth` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_locked` bit(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of `user`
-- ----------------------------
BEGIN;
INSERT INTO `user` VALUES ('1', 'c1', '1', '0', '2016-02-28 10:44:34', b'0');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

2. model类User

package pr.cgl.model;
import javax.persistence.*;
/**
* Created by LL on 16/1/25.
*/
@Entity
@Table(name = "user")
public class User {
private Integer id;

private String name;

private Boolean isLocked;

public enum Gender{
MALE,
FEMALE
}

public enum Level{
cardMember, // 0
goldCardMember, // 1
platinumCardMember, // 2
}

private Gender gender;

private Level level;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

@Column(name = "name")
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Column(name = "is_locked")
public Boolean getIsLocked() {
return isLocked;
}

public void setIsLocked(Boolean isLocked) {
this.isLocked = isLocked;
}

@Column(name = "gender")
public Gender getGender() {
return gender;
}

public void setGender(Gender gender) {
this.gender = gender;
}

@Column(name="level")
public Level getLevel() {
return level;
}

public void setLevel(Level level) {
this.level = level;
}
}
3. 测试类

package pr.cgl.test;
import pr.cgl.model.User;
import pr.cgl.util.EntityUtil;

import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.List;

/**
* Created by LL on 16/1/25.
*/
public class EnumTest {
  public static void main(String[] args) {
    EntityManager em = EntityUtil.em;
     String jql = " FROM User u";
    Query query = em.createQuery(jql);
    List<User> userList = query.getResultList();
    for(User u: userList){
      System.out.println("id="+u.getId()+" name="+u.getName()+" is_locked="+u.getIsLocked()+" gender="+u.getGender()+" level="+u.getLevel());
    }
  }
}
4. 输出结果

Hibernate: select user0_.id as id0_, user0_.gender as gender0_, user0_.is_locked as is3_0_, user0_.level as level0_, user0_.name as name0_ from user user0_
id=1 name=c1 is_locked=false gender=FEMALE level=cardMember

转载于:https://www.cnblogs.com/cglWorkBook/p/5224266.html

model类中enum类型与数据库字段的映射相关推荐

  1. mysql 枚举类型 映射_model类中enum类型与数据库字段的映射

    这个东西搞了好久,不难,但小细节没注意到一直不对,现在终于做出来了,赶紧记下. 下面是实体类User与对应的表user之间的映射: 1. 准备数据库表user SET NAMES utf8; SET ...

  2. MYSQL中 ENUM 类型

    MYSQL中 ENUM 类型的详细解释 ENUM类型 ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串(&quo ...

  3. POJO类中布尔类型属性的定义与命名

    阿里Java开发手册中强制规定: 而不类型的变量名不要使用isXxx的格式.因为布尔类型属性的getter方法与其他类型的不一样,是isSuccess(),如果在变量名之前加上is的话,属性名与方法名 ...

  4. POJO 类中布尔类型为啥不让用 isXxx 命名

    一.代码问题重现 想要使用json串在服务间传递信息时,我们会先定义一个POJO类,该类中包含是否删除属性isDeleted,代码如下 /** * @author wenxuan wang */ @D ...

  5. 使用JPA映射实体类和数据库中表时,实体类中定义的enum类型,数据库定义的是varchar类型,为什么使用JPA插入时字段变成了Integer类型

    解决方案,在使用枚举类型定义的字段上添加 注解@Enumerated(EnumType.STRING)即可解决问题 如果不使用该注解,则JPA映射的一直是Integer类型.

  6. mysql数据库表中的类型_MySQL数据库中表类型MyISAM与InnoDB的区别

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...

  7. java中enum类型的使用

    java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我 ...

  8. mysql中enum类型

    ENUM类型 ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串("") 或 NULL: 如果 ...

  9. Hibernate 中Datetime类型属性数据库默认值

    为什么80%的码农都做不了架构师?>>>    在有些时间,我们在设置Hibernate 的配置文件时希望POCO类的一个属性使用数据库中的默认值,这种情况出现在应用服务器和数据服务 ...

最新文章

  1. ssm 异常捕获 统一处理_SpringMVC 统一异常处理介绍及实战
  2. 皮一皮:盖茨这婚离的是多土豪...
  3. 网页字段位置php改变,php实现子字符串位置相互对调互换的方法
  4. 模拟电子技术不挂科学习笔记3(放大电路的分析方法)
  5. html如何实现表格效果,DIV+CSS技术实现类似table表格的效果
  6. 商业智能BI系统对企业有什么好处
  7. UNI-APP 小程序生成海报
  8. 计算机网络自顶向下第七版第二章课后答案,《计算机网络·自顶向下方法》第七版 第二章 课后习题与问题 答案...
  9. 图片转Excel表格在线工具,分享几款不错的工具!
  10. java初学者学习路线
  11. java 折线图_用Java绘制简单的折线图
  12. chatGPT账号apikey码-chatGPT 免费APIKEY
  13. 咖说 | 姚前:区块链与央行数字货币
  14. 数字组合(算法竞赛进阶指南)
  15. 重启计算机连线的标志是,win10右下角总出现一个小地球图标怎么办_win10电脑网络连接图标变成地球如何解决...
  16. (应用程序无法正常启动0xc0000142) 关于win10周年版更新后无法正常使用vc6.0问题的解决方法
  17. 配置 不使用rsa 密码_了解使用RSA的密码学
  18. 图解在VC里使用graphics.h绘图(类似TC)
  19. 关于K8S外部域名解析和hostNetwork内部域名解析问题笔记
  20. 宣传单彩页_印刷一份彩页宣传单张有五个注意事项

热门文章

  1. void类型及void指针
  2. mysql5.7密码过期ERROR 1862 (HY000): Your password has expired. To log in you must change
  3. 很经典的独白,搞网络的童鞋们,你们懂得
  4. 擴展 CommandField 類別 - 刪除提示訊息
  5. 服务器安装什么文件可以获取密码,服务器ssh密码在哪获取
  6. 钢铁侠头盔制作图纸下载_如何在10分钟内制作头盔图
  7. 法语写信_为我们写信:我们最热门的19个主题
  8. vs2015软件系统开源_特别版:2015年开源新闻
  9. new relic_新的Relic的Centurion Docker部署工具,DIY大脑扫描仪等
  10. 前端:HTML/05/lt;meta标记,XHTML简介及其编写规范,表格标签(lt;table)及其相关标签(lt;tr,lt;td或lt;th)