zoukankan      html  css  js  c++  java
  • JPA学习---第五节:日期和枚举等字段类型的JPA映射

    1、在上一节可在数据库中看到创建出来的表和字段,是通过 Entity bean 来创建的,而创建表名和字段名的规则是怎样的?

    有类,代码如下:

    package learn.jpa.bean;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    
    @Entity
    public class Person {
    
        @Id
        @GeneratedValue
        private Integer id;
        private String name;
        
        public Person(){}
        
        public Person(String name){
            this.name = name;
        }
        
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

    表名:是根据 Entity 的名称来命名的

    字段:是根据属性名称来命名的

    private Integer id;
    private String name;

    以上的 id 和 name 是称之为字段, getId() 和 setId() 中的 id 称之为属性。

    2、更改表名和字段名或长度,如下代码所示:

    package learn.jpa.bean;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name="t_person")
    public class Person {
    
        @Id
        @GeneratedValue
        private Integer id;
        @Column(length=64,name="personName",nullable=false)
        private String name;
        
        public Person(){}
        
        public Person(String name){
            this.name = name;
        }
        
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

    3、日期和枚举型字段的映射,代码如下:

    实体类:

    package learn.jpa.bean;
    
    import java.util.Date;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.EnumType;
    import javax.persistence.Enumerated;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import javax.persistence.Temporal;
    import javax.persistence.TemporalType;
    
    @Entity
    @Table(name="t_person")
    public class Person {
    
        @Id                //@Id用于标记属性的主键
        @GeneratedValue
        private Integer id;
        @Column(length=64,name="personName",nullable=false)
        private String name;
        // TemporalType.DATE 表示日期格式 例:2014-10-01
        // TemporalType.TIME 表示时间格式  例:12:21:34
        // TemporalType.TIMESTAMP 表示日期加时间格式  例:2014-10-01 12:21:34
        @Temporal(TemporalType.DATE)
        private Date brithday;
        // @Enumerated 注解枚举型   
        // EnumType.STRING 表示保存到数据库的值是 MAN or WOMEN
        // EnumType.ORDINAL 表示保存到数据库的值是 MAN 和 WOMEN 所设置的索引值
        @Enumerated(EnumType.STRING)
        @Column(length=5, nullable=false)
        private Gender gender;
        
        public Person(){}
        
        public Person(String name){
            this.name = name;
        }
        
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    
        public Date getBrithday() {
            return brithday;
        }
    
        public void setBrithday(Date brithday) {
            this.brithday = brithday;
        }
    
        public Gender getGender() {
            return gender;
        }
    
        public void setGender(Gender gender) {
            this.gender = gender;
        }
        
    }

    枚举类:

    package learn.jpa.bean;
    
    /**
     * 
     * @doc        性别枚举型
     *
     */
    public enum Gender {
        MAN,WOMEN;
    }

    说明:

    1、TemporalType.DATE 表示日期格式 例:2014-10-01
    2、TemporalType.TIME 表示时间格式  例:12:21:34
    3、TemporalType.TIMESTAMP 表示日期加时间格式  例:2014-10-01 12:21:34

    @Enumerated 注解枚举型  
    1、EnumType.STRING 表示保存到数据库的值是 MAN or WOMEN
    2、EnumType.ORDINAL 表示保存到数据库的值是 MAN 和 WOMEN 所设置的索引值

  • 相关阅读:
    Java类型转换.
    搭建jenkins集群node结点
    java Lambda
    @Autowired使用说明
    Disruptor底层实现讲解与RingBuffer数据结构讲解
    Disruptor并发框架简介
    并发编程中的读写锁分离锁的使用
    并发编程过程中的重入锁
    互联网进行限流策略的Semaphore信号量使用
    并发编程中Future和Callable使用
  • 原文地址:https://www.cnblogs.com/hwlsniper/p/4079880.html
Copyright © 2011-2022 走看看