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"是可选的,如果不指定,那么实体的名称默认为类名。每...
还详细介绍了查询方法的声明和创建,包括支持的关键字,使用JPA命名查询的XML命名查询定义、注解方式和声明接口。对使用@Query进行自定义查询,LIKE查询、原生查询、命名参数、SpEL表达式的使用进行了说明。此外,还...