JPA详细说明
@Temporal(TemporalType.DATE):如果属性是时间类型,因为数据表对时间类型有更严格的划分,所以必须指定具体时间类型,如④所示。在javax.persistence.TemporalType枚举中定义了3种时间类型:
1) DATE :等于java.sql.Date
2) TIME :等于java.sql.Time
3) TIMESTAMP :等于java.sql.Timestamp
如果我们不希望将某个属性持久化到数据表中,则可以通过@Transient注解显式指定:
@Transient
private boolean tempProp1;
1. 基本属性映射
通过 @Basic 可以声明属性的存取策略:
@Basic(fetch=FetchType.EAGER) 即时获取(默认的存取策略)
@Basic(fetch=FetchType.LAZY) 延迟获取
通过 @Temporal 定义映射到数据库的时间精度:
@Temporal(TemporalType=DATE) 日期
@Temporal(TemporalType=TIME) 时间
@Temporal(TemporalType=TIMESTAMP) 两者兼具
使用 @Lob 映射Blob或Clob类型:根据属性类型决定
java.sql.CLOB, Character[], char[], String 将映射为 Clob
java.sql.BLOB, Byte[], byte[], serializable 将映射为 Blob
2. 列属性映射
使用 @Column 映射到列
@Column(
name="columnName"; // 可选,列名(默认是属性名)
boolean unique() default false; // 可选,是否在该列上设置唯一约束(默认 false)
boolean nullable() default true; // 可选,是否可以为空
boolean insertable() default true; // 可选,该列是否作为生成insert语句中的一列
boolean updatable() default true; // 可选,该列是否作为生成update语句中的一列
String columnDefinition() default ""; // 可选,为这个特定列覆盖 SQL DDL 片段(可能导致无法在不同数据库间移植)
String table() default ""; // 可选,定义对应的表,默认为主表
int length() default 255; // 可选,列长度
int precision() default 0; // 可选,列十进制精度(decimal precision)
int scale() default 0; // 可选, 列十进制数范围(decimal scale)
public class Person {
@Column(name = "PERSONNAME", unique = true, nullable = false, updatable = true)
private String name;
@Column(name = "PHOTO", columnDefinition = "BLOB NOT NULL", secondaryTable="PER_PHOTO")
private byte[] picture;
}
1. 基本属性映射
通过 @Basic 可以声明属性的存取策略:
@Basic(fetch=FetchType.EAGER) 即时获取(默认的存取策略)
@Basic(fetch=FetchType.LAZY) 延迟获取
通过 @Temporal 定义映射到数据库的时间精度:
@Temporal(TemporalType=DATE) 日期
@Temporal(TemporalType=TIME) 时间
@Temporal(TemporalType=TIMESTAMP) 两者兼具
使用 @Lob 映射Blob或Clob类型:根据属性类型决定
java.sql.CLOB, Character[], char[], String 将映射为 Clob
java.sql.BLOB, Byte[], byte[], serializable 将映射为 Blob
2. 列属性映射
使用 @Column 映射到列
@Column(
name="columnName"; // 可选,列名(默认是属性名)
boolean unique() default false; // 可选,是否在该列上设置唯一约束(默认 false)
boolean nullable() default true; // 可选,是否可以为空
boolean insertable() default true; // 可选,该列是否作为生成insert语句中的一列
boolean updatable() default true; // 可选,该列是否作为生成update语句中的一列
String columnDefinition() default ""; // 可选,为这个特定列覆盖 SQL DDL 片段(可能导致无法在不同数据库间移植)
String table() default ""; // 可选,定义对应的表,默认为主表
int length() default 255; // 可选,列长度
int precision() default 0; // 可选,列十进制精度(decimal precision)
int scale() default 0; // 可选, 列十进制数范围(decimal scale)
public class Person {
@Column(name = "PERSONNAME", unique = true, nullable = false, updatable = true)
private String name;
@Column(name = "PHOTO", columnDefinition = "BLOB NOT NULL", secondaryTable="PER_PHOTO")
private byte[] picture;
}
分享到:
相关推荐
下面将详细介绍JPA中的一些核心注解及其用法。 1. **@Entity(name="EntityName")**:此注解标记一个Java类为一个实体类,它对应数据库中的一个表。`name`参数是可选的,用于指定实体在数据库中的表名,若不指定则...
### JPA 使用说明 #### 一、引言与背景 在企业级应用开发中,管理关系型数据库的数据是一项核心任务。传统的做法是使用 JDBC(Java Database Connectivity)来操作数据库。虽然 JDBC 支持大量数据的处理,能确保...
Java 持续性API(JPA)是Java平台上的一个规范,用于处理对象关系映射(ORM),它简化了企业级Java应用中对数据库的访问。JPA允许开发者使用面向对象的编程模型来操作数据库,而无需深入理解底层的SQL语法。在JPA中...
2. JPA的主要组件和接口的详细说明。 3. JPA注解的全面介绍,包括如何使用它们来定义实体类、字段属性以及关系映射。 4. Oracle数据库与JPA的集成,包括驱动配置、数据源设置等。 5. 使用JPA进行CRUD(创建、读取、...
本篇将详细讲解如何将Spring 3.0.5与JPA 2.0(基于Hibernate 3.6)进行集成,以构建高效、灵活的应用程序。 首先,让我们了解Spring 3.0.5的核心特性。Spring 3.0引入了若干改进和新特性,包括对JSR-303(Bean ...
JSR文档定义了JPA的标准,API文档则提供了具体的接口和类的说明,帮助开发者理解和使用JPA。 ### JPA详解 JPA详解通常是对JPA的深入解析,包括实体(Entity)、持久化上下文(Persistence Context)、托管状态...
Spring MVC + Shiro + QueryDSL + JPA 框架多数据源配置详细说明 Spring MVC + Shiro + QueryDSL + JPA 框架多数据源配置是当前 Web 应用程序中常见的技术栈组合。该技术栈组合可以提供强大的安全认证、数据查询和...
JavaDoc则提供了详细的API文档,列出了所有可用的接口、类和方法,以及它们的用途和参数说明,是开发过程中不可或缺的参考资料。 **Schema文件** schema文件可能包含了JPA 2.0的元数据定义,如实体、关系、查询等...
JPA详细使用说明!由他一个足以!啥po的继承,一对多,多对多和JPA的配置该文档都有的!
本文将详细介绍JPA中常用注解的使用方法和技巧。 @Entity:此注解用于声明一个类是实体类,并且该类中的对象会被映射到数据库表。实体类通常需要使用@Table注解来指定具体的数据库表名称。当实体类的名称和数据库表...
### JPA 规范1.0中文版关键知识点解析 #### 一、概述 Java Persistence API (JPA) 是一种用于处理对象与关系数据库...此外,该文档还详细介绍了规范的使用许可条件,确保开发者能够在合法的前提下充分利用 JPA 技术。
《Spring Data JPA 中文指南》是一份详细阐述Spring Data JPA使用方法和技术的文档,旨在帮助开发者更好地理解和应用这一强大的持久层框架。Spring Data JPA是Spring Framework的一部分,它简化了Java Persistence ...
README.MD文件通常是项目或软件的说明文档,它可能包含了详细的步骤来指导用户如何配置Weblogic以兼容JPA2.0,可能包括以下内容: 1. **部署配置**:可能需要修改Weblogic的部署描述符(如weblogic.xml或ejb-jar....
以下是对这个DEMO中涉及的技术点的详细说明: **SpringBoot** SpringBoot是由Pivotal团队提供的全新框架,旨在简化Spring应用程序的初始搭建以及开发过程。它通过内嵌Tomcat或Jetty服务器,自动配置Spring和许多...
整体而言,Spring Data JPA的官方参考文档是一个非常全面的技术指南,它不仅详细阐述了Spring Data JPA的核心特性和使用方法,也提供了与JPA结合使用的高级特性说明。文档中所涉及的知识点涵盖了从简单的仓库接口...
下面将详细讲解这些技术及其在动态查询中的应用。 Spring Boot是由Pivotal团队提供的一个框架,用于简化Spring应用程序的初始搭建以及开发过程。它通过默认配置、自动配置和起步依赖项,极大地简化了基于Spring的...
Java Persistence API(JPA)是Java平台上的一...以上就是关于JPA环境搭建所需jar包的详细说明,以及搭建过程中涉及的一些关键技术点。正确配置这些依赖将使你的Java应用能够充分利用JPA的便利性,实现高效的数据操作。
JPA 使用注解来定义实体类与数据库表之间的映射关系,本文将详细介绍 JPA 注解的使用。 一、@Table 注解 @Table 注解用于定义实体类对应的数据库表的名称、目录和模式等属性。元数据属性说明: * name:表名,...
本篇文章将详细解释在Hibernate中基于JPA注解的使用方法。 1. **@Entity(name="EntityName")**:这个注解用于声明一个Java类作为数据库中的实体,"EntityName"是可选的,如果不指定,那么实体的名称默认为类名。每...
达梦数据库官网:本篇主要讲整合,详细介绍会在别的文章中。 1.达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。 达梦数据库管理系统的最新版本是8.0版本,简称DM8。 2.DM...