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映射的更多相关文章

  1. ElasticSearch(五):Mapping和常见字段类型

    ElasticSearch(五):Mapping和常见字段类型 学习课程链接<Elasticsearch核心技术与实战> 什么是Mapping Mapping类似数据库中的schema的定 ...

  2. JPA学习(五、JPA_二级缓存)

    框架学习之JPA(五) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...

  3. VUE2.0实现购物车和地址选配功能学习第五节

    第五节 单件商品金额计算和单选全选功能 1.vue精髓在于操作data模型来改变dom,渲染页面,而不是直接去改变dom 2.加减改变总金额功能: html:<div class="c ...

  4. salesforce lightning零基础学习(十五) 公用组件之 获取表字段的Picklist(多语言)

    此篇参考:salesforce 零基础学习(六十二)获取sObject中类型为Picklist的field values(含record type) 我们在lightning中在前台会经常碰到获取pi ...

  5. JPA学习---第六节:大数据字段映射与字段延迟加载

    1.大数据字段所需的注解 @Lob ,例如: @Lobprivate String info; 在mysql中映射产生的字段的类型是longtext:在oracle中是  CLOB @Lobpriva ...

  6. JPA学习---第十一节:JPA中的多对多双向关联实体定义与注解设置及操作

    1.定义实体类,代码如下: (1).学生实体类: package learn.jpa.entity; import java.util.HashSet; import java.util.Set; i ...

  7. JPA学习---第十节:JPA中的一对一双向关联

    1.创建实体类,代码如下: 代码清单1: package learn.jpa.entity; import javax.persistence.CascadeType; import javax.pe ...

  8. JPA学习---第七节:使用JPA加载_更新_删除对象

    1.添加数据,代码如下: @Test public void save(){ EntityManagerFactory factory = Persistence.createEntityManage ...

  9. JPA学习---第四节:JPA实例与JPA主键生成策略

    1.编写实体类,代码如下: package learn.jpa.bean; import javax.persistence.Entity; import javax.persistence.Gene ...

随机推荐

  1. C#微信开发回复信息

    using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;usi ...

  2. Layabox:全球唯一Flash直接开发H5的工具Laya.Flash终于开放(转)

    HTML5是风口,但年轻幼稚,Flash昔日黄花,但丰满妖娆,Layabox使用Flash直接开发HTML5(或编译页游),渴望性感而青春,但久在深闺,只见于一些大企业和朋友圈中,被指“饥饿营销”,保 ...

  3. 用viewpager实现图片轮播

    应用中常常遇到图片轮播的需求,这时候就需要用到viewpager这个组件.viewpager是android support v4 中提供的一个组件.viewpager使用需要以下几步骤: 1.在布局 ...

  4. 英特尔实感SDK 代码示例

    原文地址 摘要 本套代码示例针对巴西英特尔实感动手实验室创建,旨在帮助参与人员了解如何使用英特尔® 实感™ 软件开发套件. 12 个示例使用 C# SDK 包装程序,提供了简单的基于控制台的应用,支持 ...

  5. mysql中权限参数说明

    1 授权表范围列的大小写敏感性+--------------+-----+-----+---------+----+-----------+------------+| 列           |Ho ...

  6. 理解C#系列 / 核心C# / 判断&循环&跳转

    判断&循环&跳转 说明 本节写的是C#语言的控制程序流的语句,“控制程序流”就是控制程序运行流程的意思. 判断 很容易理解:如果……就…… if语句:测试特定条件是否满足,如果满足就执 ...

  7. UI3_UITableViewDelete(多选)

    // AppDelegate.m // UI3_UITableViewDelete(多选) // // Created by zhangxueming on 15/7/14. // Copyright ...

  8. linux exec函数族

    1.简介 在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是: #include <unistd.h>   extern char **environ; ...

  9. Socket 广播

    1.广播端口 Socket中的广播端口是什么意思,是谁对应谁的? 这个广播端口 指定 客户端接收广播消息时要使用的端口号. 参考: 1.快速Python 原型 2.receive UDP broadc ...

  10. 一个适用于层级目录结构的makefile模版

    今天写了个层次化的Makefile模版,用来自动化编译项目,这个模版应当包含以下功能: 适用于层次化结构,Makefile主要内容都放在顶层目录下的Makefile.env中,子层Makefile包含 ...