JPA的三大核心组件 EntityManager ,实体 和 JPQL
虽然JPA可以用XML映射来管理实体与数据表之间的映射关系 ,但实际开发中,用Annotation 比较多
对于一个JPA实体来说,通常用如下两个Annotation来修饰
@Entity:被该Annotation 修饰的POJO就是一个实体,可以指定一个name属性(实体名称),可以不指定默认该类名为实 体名称
@Table:该Annotation指定实体所映射的表
@Table 的属性
catalog
name
schema
uniqueConstraints 设置唯一约束
@Column为了指定某个属性所映射的数据列的详细信息,如,列名,列字段长等,用@Column修饰该属性
@Column属性
insertable
length
name
nullable
table
unique 是否具有唯一约束
updatable
@Transient 修饰不想持久保持的Field
@Transient
private String content; //值不会保存到数据表中
@Enumerated 修饰枚举类型的Field
假设有一个season.java枚举类
public enum Season{spring,summer,autumn,winter}
@Eunmerated(EnumType.ORDINAL) //ordinal n.序数 ,
//有两种格式 EnumType.STRING 存储的是枚举的值,
//EnumType.ORDINAL存储的枚举的序列号,1,2,3,,
@Column(name="season")
private Season happenSeason;
@LOB @Basic修饰大数据类型的Field
当实体的Field为byte[],Byte[]或者java.io.Serializable类型时 @Lob修饰的Field映射为底层的Bolb列
当实体的Field为char[],Character[],java.lang.String类型时,@Lob修饰的Field映射为底层的Clob列
@Lob
private byte[] pic;
保存pic的demo
File file = new File("img.png");
byte[] content = new byte[(int)file.length];
new FileInputStream(file).read(content);
person.setPic(content); // 前面 ,setTitle, setName ,一样 后面保存一样
比如我现在要查person的name,不想看Person的pic 怎么办呢,JPA提供延迟加载 @Basic 修饰
@Basic 的属性 1.fetch (FetchType.EAGER 不使用延迟加载;FetchType.LAZY 使用延迟加载)
2.optional 指定Field映射的数据列是否允许null值。
修改Person 实体如下
private String name; // 这个以上的都不变
@Lob
@Basic(fetch=FetchType.LAZY)
private byte[] pic;
/////////////////////////////////////////////////////////////这样就OK
@Temporal 修饰日期类型的Field
java 日期时间类型有两种 java.util.Date, java.util.Calendar
数据库日期时间类型有 date, time ,datetime, timestamp
用Temporal 的value 属性 Temporal.DATE Temporal.TIME Temporal.TIMESTAMP
分别对应数据的类型
@Temporal(TemporalType.DATE)
private DATE birth;
分享到:
相关推荐
在软件开发中,数据持久化是一个关键环节,而将实体类映射到数据库是实现这一目标的常用方式。本文将详细讲解如何使用C#语言配合SQLite数据库进行这项工作,为其他语言和数据库的映射提供参考。 首先,我们需要了解...
在IT领域,实体和映射是数据库设计与开发中的核心概念,特别是在对象关系映射(ORM,Object-Relational Mapping)技术中。本教程将详细阐述“生成实体”和“映射生成实体”的过程,以及如何利用特定工具来实现这些...
在实际开发中,为了提高效率并减少手动编写重复代码,MyBatis提供了一种自动创建实体类和映射XML文件的功能。这个特性使得开发者能够快速地基于数据库表结构生成对应的Java Bean和Mapper XML文件,大大简化了数据...
综上所述,"Hibernate实体映射"的学习资源涵盖了从基本概念到实际操作的多个方面,对于想深入了解Hibernate ORM框架的开发者来说,无疑是一份宝贵的资料。通过实践这些实例代码,可以加深对Hibernate实体映射的理解...
在本主题中,我们将深入探讨MyBatis中的表实体映射代码,以及如何利用MyBatis Generator自动生成DAO、Model和Mapper.xml文件。 首先,理解表实体映射是MyBatis的核心概念之一。实体类(Entity Class)是Java对象,...
3. 扩展性:除了基本的字段映射,工具可能还支持自定义属性、注释等扩展功能,满足不同项目需求。 4. 效率提升:通过ORM技术,该工具能够将数据库操作转化为对对象的操作,降低了数据库操作的复杂性,提高了开发和...
映射文件是Hibernate中的关键元素,它定义了Java实体类与数据库表之间的对应关系。本主题将深入探讨如何根据Java实体类自动生成Hibernate的映射文件,这对于不使用MyEclipse等集成开发环境的开发者来说尤其实用。 ...
#### 实体映射文件的基本结构 首先,我们需要了解一个基本的Hibernate映射文件结构: ```xml <!-- 映射类的属性 --> ``` 这里的`<class>`标签表示映射到特定的Java类,其属性`name`指定了对应的Java类全名...
在SSM项目开发中,手动编写实体类、DAO接口以及对应的Mapper映射文件是一项繁琐的工作,这时可以利用Generator工具来自动化生成这些代码,提高开发效率。 Generator,通常指的是MyBatis Generator,它是MyBatis提供...
在实际开发中,手动编写实体类和映射XML文件是一项繁琐的工作,而MyBatis的代码生成器(generator)可以帮我们自动完成这些任务,极大地提高了开发效率。本Demo将介绍如何使用MyBatis的代码生成器来自动生成实体映射...
本教程将深入讲解如何根据数据库表自动生成实体类、Hibernate配置文件以及实体映射文件。 首先,我们需要了解Hibernate的基本概念。Hibernate提供了一个在Java应用中使用的持久化模型,它允许开发者用面向对象的...
在IT领域,T4模板是一种强大的文本转换工具,常用于代码生成,比如将数据库模式(如数据表)映射到程序中的实体模型。T4模板是Visual Studio中的一个功能,它允许开发人员编写混合了代码和文本的模板,然后通过执行...
这个名为"爆方便_C#linq映射实体_"的工具专注于简化C# LINQ实体映射的过程,允许开发者快速、高效地将数据库对象与自定义的C#类进行关联,以便于进行数据库的查询、添加、删除和修改操作。 C# LINQ的核心在于其查询...
以下是利用AutoMapper和表达式条件进行实体映射的基本步骤: 1. **安装与配置AutoMapper**:首先,需要在项目中添加对AutoMapper的引用,并配置相应的映射规则。这通常在应用启动时完成,通过定义Profile类并调用`...
Mybatis Generator是一款强大的工具,它能够自动化生成Mybatis框架所需的实体类、Mapper接口与XML映射文件,大大减轻了开发人员的手动编码工作,提高了开发效率。本篇将详细介绍generator的使用及其背后的原理。 ...
6. 使用通用Mapper时,除了基本的CRUD操作,还可以自定义方法,只需在Mapper接口中添加方法签名,相应的XML映射文件会自动完成。 7. 这种自动化生成代码的方法可以提高开发效率,减少错误,并保持代码的一致性。当...
MyEclipse作为一款强大的Java集成开发环境,提供了丰富的功能,其中包括自动生成DAO层、实体类以及MyBatis的实体映射文件。这样的自动化工具可以帮助开发者节省大量手动编写代码的时间,减少错误,并保持代码的一致...
### ItcastOA_文档2_实体映射_分页方案_文件下载_解决异常 #### 一、实体映射 实体映射是IT项目开发中非常重要的环节之一,特别是对于那些涉及复杂数据交互的应用程序来说更是如此。在本节中,我们将详细探讨...
标题中的“基本映射说明”指的是在数据库编程中,如何将对象关系模型(ORM)与关系型数据库进行映射的概念。这种映射是通过特定的框架实现的,比如Hibernate,它允许开发人员用面向对象的方式来操作数据库,而无需...