码迷,mamicode.com
首页 > 其他好文 > 详细

JPA学习---第五节:日期和枚举等字段类型的JPA映射

时间:2014-11-06 21:41:26      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   java   sp   数据   div   on   

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 所设置的索引值

JPA学习---第五节:日期和枚举等字段类型的JPA映射

标签:style   blog   color   ar   java   sp   数据   div   on   

原文地址:http://www.cnblogs.com/hwlsniper/p/4079880.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!