`
mzhj
  • 浏览: 227531 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

05、日期_枚举等字段类型的JPA映射

阅读更多


     映射元数据是什么样的?不设置默认的情况下: 实体类Person生成表是Person表;   字段id,name,采用bean中getXXX、setXXX的XXX名称作为字段的名称,而不是采用属性的名称作为字段名称

Person.java

package cn.itcast.bean;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import java.util.Date;

@Entity         //以javax开发的包,都是Sun公司制定的一些规范
@Table(name = "PersonTable")         //改变数据库中映射表名
public class Person {
	private Integer id;
	private String name;
	private Date birthday;  //1987-12-10
	private Gender gender = Gender.MAN;   //这里可以设置默认值, Gender是一个枚举类型。

	@Enumerated(EnumType.STRING)  //说明这个属性是个枚举类型,括号内的表示存入数据库的枚举字符串而不是枚举索引
	@Column(length = 5, nullable = false)	//Eclipse代码助手快捷键为ALT+/
	public Gender getGender() {
		return gender;
	}

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

	@Temporal(TemporalType.DATE)  //说明这个属性映射到数据库中是一个日期类型,括号中的是日期格式
	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public Person() {
		/* 对象是由Hibernate为我们创建的,当我们通过ID来获取某个实体的时候,这个实体给我们返回了这个对象的创建是由Hibernate内部通过反射技术来创建的,反射的时候用到了默认的构造函数,所以这时候必须给它提供一个public的无参构造函数。*/
	}

	public Person(String name) {
		this.name = name;
	}

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	// auto是默认值,可不写,直接写@GeneratedValue
	public Integer getId() {
		return id;
	}

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

	@Column(length = 10, nullable = false, name = "personName")
	public String getName() {
		return name;
	}

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

 

  @Column 的选项。 看图:

 

   @Temporal 的选项。 看图:

 

   @Temporal(TemporalType.)的选项。 看图:

 

@Enumerated(EnumType.) 的选项。 看图:

 

  • 大小: 21.4 KB
  • 大小: 10.1 KB
  • 大小: 29.7 KB
  • 大小: 20.9 KB
分享到:
评论

相关推荐

    05_JPA详解_日期_枚举等字段类型的JPA映射.zip

    本资料主要针对JPA在处理日期、枚举等特殊字段类型时的映射进行深入解析。 ### 1. JPA基本概念 JPA通过提供一套API和元数据接口,允许开发人员将对象模型与关系数据库的表结构进行映射,从而简化了数据库操作。它...

    05_传智播客JPA详解_日期_枚举等字段类型的JPA映射

    本课程"05_传智播客JPA详解_日期_枚举等字段类型的JPA映射"深入讲解了JPA在处理特定字段类型,如日期和枚举时的映射方法。以下是关于JPA和这些特定字段类型映射的详细知识: 1. **JPA基础**: JPA通过提供API和...

    JPA详解视频教程 第5讲 日期_枚举等字段类型的JPA映射.avi

    JPA用于整合现有的ORM技术,可以简化现有Java EE和Java SE应用对象持久化的开发工作,实现ORM的统一。JPA详解视频教程 第5讲 日期_枚举等字段类型的JPA映射.avi

    JPA实体映射对时间字段的处理

    具体来说,可以将`java.util.Date`映射为`java.sql.Date`、`java.sql.Time`或`java.sql.Timestamp`等类型。默认情况下,如果实体类中使用的是`java.util.Date`类型,则会被映射为`java.sql.Timestamp`。 ```java @...

    传智播客JPA学习笔记.pdf

    日期_枚举等字段类型的JPA映射** JPA提供了对不同数据类型的映射,如日期类型(@Temporal),枚举类型(@Enumerated),甚至自定义类型,通过Converter接口可以自定义数据类型转换。 **6. 大数据字段映射与字段...

    JPA2映射的神秘之旅

    例如,@Basic注解可以指定基本类型映射,@Enumerated用于枚举类型映射,@Lob注解用来映射大对象类型,如二进制数据或字符数据,@Temporal注解用于时间类型数据,指示其时间粒度。 关系映射是指实体间关系的映射,...

    jpa学习总结,pdf类型的,详细介绍了jpa的应用

    - **枚举类型**:讲解枚举类型字段的映射方式。 #### 9. 大数据字段映射与字段延迟加载 - **大数据字段**:讨论如何在JPA中处理较大的文本或二进制数据字段。 - **字段延迟加载**:解释字段延迟加载的概念及其实现...

    JPA详细文档(JPA 批注参考)

    - `@Basic`:基本类型或枚举类型的默认映射。 - `@Temporal`:处理日期和时间类型的映射。 - `@Lob`:用于大对象(LOB)如BLOB和CLOB的映射。 - `@Transient`:标记一个属性不应被持久化。 5. **关系映射批注**...

    JPA参考文档,非常详细

    `@Basic`批注用于显式指定字段的映射方式,而`@Enumerated`和`@Temporal`则分别用于配置枚举和日期时间类型的映射。`@Lob`批注则专门用于处理大对象类型,如文本、图像或音频数据。 ##### 关系映射 关系映射是JPA...

    JPA标签(注解)详细说明

    - `@Enumerated`:用于枚举类型的映射。 - `@Temporal`:对于日期和时间类型,指定如何存储。 - `@Lob`:标记大对象(BLOB或CLOB)字段。 - `@Transient`:标记不需持久化的字段。 5. **关系映射**: - `@...

    JPA学习文档笔记

    - JPA支持将Java中的日期类型和枚举类型映射到数据库中的相应类型。 - 正确地映射这些类型有助于保持数据的一致性和准确性。 - **延迟加载**: - 是一种优化技术,用于按需加载数据,特别是在处理大量数据时可以...

    Spring-Data-JPA快速使用

    - **@Temporal**:用于指定日期/时间类型的字段应该如何存储。 - `TemporalType.DATE`:只存储日期部分。 - `TemporalType.TIME`:只存储时间部分。 - `TemporalType.TIMESTAMP`:同时存储日期和时间部分。 - **@...

    JPA批注参考(主要介绍JPA中的相关注解)

    - **`@Temporal`**:用于日期和时间类型的映射。 - **`@Lob`**:用于大对象类型如 BLOB 和 CLOB 的映射。 - **`@Transient`**:用于标记不参与持久化的属性。 #### 关系映射 - **`@OneToOne`**:表示一对一的关系...

    JPA2.0高级教程

    - **复杂类型映射**:对于日期时间、枚举等复杂类型,可以使用特定的注解进行映射。 - **一对多、多对一映射**:使用`@ManyToOne`、`@OneToMany`等注解表示一对多或多对一的关系。 - **多对多映射**:使用`@...

    jpa 批注参考 doc 格式 提供了一个对象关系映射方法

    - `@Enumerated`:将枚举类型映射为数据库的特定类型。 - `@Temporal`:处理日期和时间类型,如TIMESTAMP、DATE或TIME。 - `@Lob`:将大对象(BLOB或CLOB)映射到数据库。 - `@Transient`:标记不参与持久化的...

    实用JPA开发指南----jpa核心技术(关联关系等的配置高级配置)

    Hibernate则是一个流行的ORM(对象关系映射)框架,它是JPA的一种实现,提供了丰富的功能和高度的灵活性。 在JPA中,**关联关系**是实体之间的一种关系,模仿了数据库中的表间关系。有四种主要的关联类型: 1. **...

    JPA 批注参考Java JPA

    Java 持续性API(JPA)是Java企业版5(Java EE 5)的一部分,作为Enterprise JavaBean(EJB)3.0规范的组件,它的目标是简化EJB的持久性处理,并提供了一种面向对象的关系映射机制。JPA允许开发者以声明式的方式定义...

    jpa 传智博客课件实例

    `@Enumerated`用于枚举类型的映射。 **持久化操作**:JPA的主要操作包括: - **保存(Save)**:使用`EntityManager`的`persist()`方法将新对象保存到数据库。 - **查找(Find)**:通过`find()`方法根据主键获取...

Global site tag (gtag.js) - Google Analytics