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

JPA的一些知识(Entity)

    博客分类:
  • Java
阅读更多
何为Entity
Java EE规范中关于Entity的第一句就是An entity is a lightweight persistence domain object
entity应该和E-R图中的E是一个意思就是实体,接下来是“轻量级的持久化domain object”,
啥是domain object?
按维基上的解释就是一个多层的业务系统中持有状态的对象,用来进行层次间数据的传递。其中分离了动作(通常如此)的被称为贫血业务对象(Anemic),该模式被Martin Fowler大叔作为反模式批判。Entity中持久化的状态可以通过持久化属性或字段表示,并用注解进行标记。
如何理解持久化和轻量级呢?
持久化的领域对象,意即领域对象包括两种,不需要通过I/O进行持久化的和需要的。
轻量级的意思,应该是相对EJB2而言,可以脱离EJB容器而存在。

一个实体类的要素包括:
1 用javax.persistence.Entity注解
2 该类必须提供无参数构造方法,可以使protected或public的
3 该类必须可继承(不能final),实例变量和方法也一样
4 当需要作为游离对象被传递给EJB会话Bean时,需要同时实现Serializable接口
5 可以自由继承和被继承
6 持久化的实例变量必须保证只能通过方法来访问(private或protected声明)

对持久化字段和属性的要求
必须是基本类型,字符串,或其他的可序列化类型
持久化字段和属性的区别是,一个将标注应用到字段上,一个应用在Getter上
对于出现Many的情况,所用的集合类型必须实现Java的Collection接口,如:
■ java.util.Set
■ java.util.List
■ java.util.Map
JAP2.0引入了ElementCollection标记,可以用来表述非Entity定义的集合的一对多关系,其生成的表结构为一个fk和value组合为主键的关联表
可以用@Pattern @NotNull 等进行字段的约束

主键
主键必须是常见类型或者自定义的复合主键类
建立复合主键类时,要注意重写equals和hashcode

关系
共有四种关系:
一对一
一对多
多对一
多对多

关系的方向:
有双向和单向,双向可以在双方做修改,单向只能在一方做修改
在使用查询语言时,要注意方向上的可达性
分享到:
评论

相关推荐

    JPA核心知识总结

    **JPA核心知识总结** Java Persistence API (JPA) 是Java平台上的一个规范,用于管理和持久化Java对象到关系数据库。它提供了一种面向对象的方式来处理数据,使得开发者可以使用面向对象的编程语言来操作数据库,而...

    JPA的基本概念基础知识

    本篇文档将深入探讨JPA的基础概念和核心特性,帮助读者理解并掌握JPA的核心知识点。 ### 1. EntityManager `EntityManager`是JPA的主要接口,它提供了与持久化实体交互的API,负责实体的创建、查找、更新和删除等...

    Spring Boot JpaRepository知识学习(Spring Data JPA)

    Spring Boot JpaRepository知识学习(Spring Data JPA) Spring Boot与JpaRepository是Java开发中常见的组合,它们简化了数据库操作,使得开发者可以快速构建基于Spring的应用。本文将深入探讨Spring Data JPA,它...

    JPA Entity framework, inside of a Glassfish container

    JPA框架的核心是Entity,它代表数据库中的一个表或者视图。在Glassfish容器中使用JPA Entity Framework,开发者可以充分利用Java EE服务器提供的服务,如事务管理、安全管理以及资源注入等。 Glassfish是一款开源的...

    SpringDataJPADemo:JPA 框架知识案例

    **Spring Data JPA 知识点详解** Spring Data JPA 是 Spring Framework 的一个模块,它为 Java Persistence API(JPA)提供了一种便捷的访问数据库的方式。通过 Spring Data JPA,开发者可以极大地减少编写与数据...

    jpa开发手册[文].pdf

    本文档涵盖了JPA的基础知识、JPA的体系架构、Entity Bean的定义和使用、EntityManager的配置和使用、JPA Query的使用等方面的内容。 1. 发展中的持久化技术 在Java应用程序中,持久化技术是一种非常重要的技术。 ...

    Pro JPA2 精通JPA2

    书中不仅提供了理论知识,还包含了大量的示例代码和最佳实践,帮助读者理解和掌握如何在实际项目中运用JPA2。 ### 结论 《Pro JPA2:精通Java™ Persistence API》不仅是JPA2的学习指南,也是开发人员在日常工作中...

    JPA中文解释,JPA的API

    在JPA中,注解如`@Entity`用于标记实体类,`@Table`指定对应的数据库表,`@Id`定义主键,`@Column`定义字段属性,`@OneToMany`、`@ManyToOne`、`@OneToOne`和`@ManyToMany`处理关联关系等。针对Oracle,可能还会涉及...

    Spring Data JPA中文文档[1.4.3]_springdatajpa_erlang_waitxpf_

    2. **Entity Management**:Spring Data JPA 提供了对实体(Entity)的管理,包括实体的创建、更新、删除等操作。开发者可以通过 `EntityManager` 和 `EntityManagerFactory` 进行这些操作,但 Spring Data JPA 提供...

    JPA API CHM

    **Java Persistence API (JPA) 知识点详解** Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它提供了一种面向对象的方式来处理数据库操作,使得开发人员可以使用Java对象而不是...

    Spring Data JPA 笔记

    通过在类上添加`@Entity`注解,我们可以声明一个Java类为数据库表的代表。`@Id`注解用于标识主键字段。 2. **Repository**:Repository是Spring Data JPA的核心接口。通过继承`JpaRepository`或自定义Repository...

    JPA讲解视频

    尚硅谷的JPA.pptx文件可能包含关于这些概念的详细讲解和示例,而jpa-1和jpa-2可能是视频课程的分章节内容,涵盖了JPA的基础知识和进阶技巧。通过学习这些资源,开发者可以更好地理解和运用JPA,提升其在实际项目中的...

    尚硅谷 jpa

    ### 尚硅谷 JPA 教程知识点概览 #### 一、JPA 概述 - **定义**:Java Persistence API (JPA) 是 Java 平台标准的一部分,旨在为 Java 应用程序提供对象持久化的功能。它是一种 ORM (Object-Relational Mapping) ...

    jpa 关联映射jpa 关联映射jpa 关联映射

    这些知识点对于理解和实践 JPA 关联映射非常关键。 #### 五、拓展阅读 - 《Java Persistence with Hibernate》 - 《Java Persistence API (JPA) 2.1 Specification》 - 《Hibernate ORM Documentation》 通过深入...

    JPA_批注参考

    ### JPA批注参考知识点详解 #### 一、概述 JPA (Java Persistence API) 是 Java 社区标准 JSR 317 的一部分,它为 Java 应用提供了对象关系映射(ORM)功能。JPA 允许开发者以声明的方式定义 Java 对象与关系型...

    spring jpa

    以上就是关于Spring JPA的一些基本知识和使用技巧。通过这些内容,开发者可以更高效地在Spring框架下进行数据库操作,同时享受到Spring JPA带来的诸多便利。在实际项目中,合理运用这些知识点能够极大地提高开发效率...

    jpa实现数据库操作

    以上内容涵盖了JPA实现数据库操作的基础知识,随着项目的深入,你可能需要学习更多关于Spring与JPA集成的内容,包括Spring Boot、Spring Data JPA、事务管理、分页查询、自定义查询方法等,这些都是构建高效、可维护...

    spring+JPA示例

    2. **定义实体类**:JPA 使用@Entity注解标记Java类作为数据库表的映射,@Table注解指定对应的表名,@Id注解标识主键字段。 3. **使用注解进行映射**:比如使用@Column注解定义列,@GeneratedValue注解定义主键生成...

    SpringBoot+JPA

    - 创建实体类:定义与数据库表对应的Java类,使用注解如`@Entity`、`@Table`、`@Id`等进行ORM映射。 - 创建Repository接口:基于JpaRepository或CrudRepository,自定义方法即可自动实现相应的CRUD操作。 5. **...

Global site tag (gtag.js) - Google Analytics