`

实体的基本映射

    博客分类:
  • JPA
阅读更多

 

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)

    在软件开发中,数据持久化是一个关键环节,而将实体类映射到数据库是实现这一目标的常用方式。本文将详细讲解如何使用C#语言配合SQLite数据库进行这项工作,为其他语言和数据库的映射提供参考。 首先,我们需要了解...

    生成实体,映射生成实体.zip

    在IT领域,实体和映射是数据库设计与开发中的核心概念,特别是在对象关系映射(ORM,Object-Relational Mapping)技术中。本教程将详细阐述“生成实体”和“映射生成实体”的过程,以及如何利用特定工具来实现这些...

    mybatis自动生成实体类映射

    在实际开发中,为了提高效率并减少手动编写重复代码,MyBatis提供了一种自动创建实体类和映射XML文件的功能。这个特性使得开发者能够快速地基于数据库表结构生成对应的Java Bean和Mapper XML文件,大大简化了数据...

    Hibernate实体映射

    综上所述,"Hibernate实体映射"的学习资源涵盖了从基本概念到实际操作的多个方面,对于想深入了解Hibernate ORM框架的开发者来说,无疑是一份宝贵的资料。通过实践这些实例代码,可以加深对Hibernate实体映射的理解...

    mybatis表实体映射代码

    在本主题中,我们将深入探讨MyBatis中的表实体映射代码,以及如何利用MyBatis Generator自动生成DAO、Model和Mapper.xml文件。 首先,理解表实体映射是MyBatis的核心概念之一。实体类(Entity Class)是Java对象,...

    帅华的C#实体映射工具V1.0

    3. 扩展性:除了基本的字段映射,工具可能还支持自定义属性、注释等扩展功能,满足不同项目需求。 4. 效率提升:通过ORM技术,该工具能够将数据库操作转化为对对象的操作,降低了数据库操作的复杂性,提高了开发和...

    java根据实体类生成Hibernate映射文件

    映射文件是Hibernate中的关键元素,它定义了Java实体类与数据库表之间的对应关系。本主题将深入探讨如何根据Java实体类自动生成Hibernate的映射文件,这对于不使用MyEclipse等集成开发环境的开发者来说尤其实用。 ...

    hibernate实体映射文件字段设置默认值

    #### 实体映射文件的基本结构 首先,我们需要了解一个基本的Hibernate映射文件结构: ```xml <!-- 映射类的属性 --> ``` 这里的`<class>`标签表示映射到特定的Java类,其属性`name`指定了对应的Java类全名...

    SSM框架使用Generator生成实体类,映射文件

    在SSM项目开发中,手动编写实体类、DAO接口以及对应的Mapper映射文件是一项繁琐的工作,这时可以利用Generator工具来自动化生成这些代码,提高开发效率。 Generator,通常指的是MyBatis Generator,它是MyBatis提供...

    mybatis自动生成实体映射类demo

    在实际开发中,手动编写实体类和映射XML文件是一项繁琐的工作,而MyBatis的代码生成器(generator)可以帮我们自动完成这些任务,极大地提高了开发效率。本Demo将介绍如何使用MyBatis的代码生成器来自动生成实体映射...

    根据数据库表生成实体、hibernate配置文件和实体映射文件

    本教程将深入讲解如何根据数据库表自动生成实体类、Hibernate配置文件以及实体映射文件。 首先,我们需要了解Hibernate的基本概念。Hibernate提供了一个在Java应用中使用的持久化模型,它允许开发者用面向对象的...

    T4模板数据表映射实体

    在IT领域,T4模板是一种强大的文本转换工具,常用于代码生成,比如将数据库模式(如数据表)映射到程序中的实体模型。T4模板是Visual Studio中的一个功能,它允许开发人员编写混合了代码和文本的模板,然后通过执行...

    爆方便_C#linq映射实体_

    这个名为"爆方便_C#linq映射实体_"的工具专注于简化C# LINQ实体映射的过程,允许开发者快速、高效地将数据库对象与自定义的C#类进行关联,以便于进行数据库的查询、添加、删除和修改操作。 C# LINQ的核心在于其查询...

    AutoMapper和表达式条件的实体映射(DDD的使用)

    以下是利用AutoMapper和表达式条件进行实体映射的基本步骤: 1. **安装与配置AutoMapper**:首先,需要在项目中添加对AutoMapper的引用,并配置相应的映射规则。这通常在应用启动时完成,通过定义Profile类并调用`...

    generator自动生成Mybatis实体以及映射文件

    Mybatis Generator是一款强大的工具,它能够自动化生成Mybatis框架所需的实体类、Mapper接口与XML映射文件,大大减轻了开发人员的手动编码工作,提高了开发效率。本篇将详细介绍generator的使用及其背后的原理。 ...

    maven+mybatis+通用mapper生成java实体类,映射接口与映射文件

    6. 使用通用Mapper时,除了基本的CRUD操作,还可以自定义方法,只需在Mapper接口中添加方法签名,相应的XML映射文件会自动完成。 7. 这种自动化生成代码的方法可以提高开发效率,减少错误,并保持代码的一致性。当...

    myeclipse 自动生成DAO层,实体类,mybatis 实体映射文件

    MyEclipse作为一款强大的Java集成开发环境,提供了丰富的功能,其中包括自动生成DAO层、实体类以及MyBatis的实体映射文件。这样的自动化工具可以帮助开发者节省大量手动编写代码的时间,减少错误,并保持代码的一致...

    ItcastOA_文档2_实体映射_分页方案_文件下载_解决异常.doc

    ### ItcastOA_文档2_实体映射_分页方案_文件下载_解决异常 #### 一、实体映射 实体映射是IT项目开发中非常重要的环节之一,特别是对于那些涉及复杂数据交互的应用程序来说更是如此。在本节中,我们将详细探讨...

    基本映射说明

    标题中的“基本映射说明”指的是在数据库编程中,如何将对象关系模型(ORM)与关系型数据库进行映射的概念。这种映射是通过特定的框架实现的,比如Hibernate,它允许开发人员用面向对象的方式来操作数据库,而无需...

Global site tag (gtag.js) - Google Analytics