如果将一个类定义为实体类,则该类需符合以下要求:
1,必须用注释 javax.persistence.Entity 声明该类;
2,该类必须有一个 public 或者 protected 的 无参构造函数,也可以有其他构造函数,但前者是必须的,后者是可选的;
3,该类以及该类中的方法,持久成员变量一定不能声明为 fianl;
4,如果该类的实例需要作为值进行传递(如通过会话bean的 remote接口定义的方法进行传递),则该类必须实
现 Serializable 接口;
5,实体类可能继承实体类和非实体类,但该实体类必须继承实体类;
6,实体类中的持久成员变量必须声明为 private,protected 或者 package-private,并且只能通过该实体类中的成员方法
访问持久成员变量。
可以作为实体类持久成员变量的类型如下:
1,java 的 8 种基本类型;
2,java.lang.String;
其他 serializable 类型:
3,8 种基本类型的包装类型;
4,java.math.BigInteger
5,java.math.BigDecimal
6,java.util.Date
7,java.util.Calendar
8,java.sql.Date
9,java.sql.Time
10,java.sql.TimeStamp
11,自定义的 serializable 类型
12,byte[]
13,Byte[]
14,char[]
15,Character[]
16,枚举类型
17,其他实体类或实体类的集合
18,嵌入类
实体类集合可用的集合类型如下:
1,java.util.Collection
2,java.util.Set
3,java.util.List
4,java.util.Map
可作为实体类主键的类型如下:
1,基本类型及其包装类;
2,java.lang.String;
3,java.util.Date (映射 temporal 类型必须为 DATE)
4,java.sql.Date
主键类的要求如下:
1,类的修饰符必须为 public;
2,类的属性必须为 private,protected 或者 package-private;
3,类必须有一个 public 的默认构造函数;
4,类必须重写 hashCode() 和 equals(Object other) 方法;
5,类必须 serializable;
6,组合主键必须描述和映射到实体类的多个域或属性上,或者映射到嵌入类;
7,主键类的属性的属性名和属性类型必须与映射到的实体类的对应属性相同;
实体之间的连接关系:
实体之间有四种连接关系:
one-to-one, one-to-many, many-to-one, 和 many-to-many,并且实体之间的这些关系可以是双向关系或单向关系。
关系的方向可以是双向的或单向的。双向关系有关系的拥有端和逆端,单向关系仅仅有关系的拥有端。
实体双向关系必须符合以下要求:
1,双向关系的逆端必须指定 @OneToOne, @OneToMany, 或 @ManyToMany 注释中的 mappedBy 属性,且该属性指定的
值必须与关系拥有端实体类指示的逆端成员变量名字相同;
2,many-to-one 双向关系的 many 端一定不能指定 mappedBy 属性,因为该端一定是双向关系的拥有端;
3,one-to-one 双向关系中 关系拥有端是包含外键的实体类;
4,many-to-many 双向关系中 关系拥有端和关系逆端可以任意指定。
单向关系就是只在关系一端的实体类上指定关系。
分享到:
相关推荐
**电子书-EJB3.0实例教程** EJB(Enterprise JavaBeans)是Java平台企业版(Java EE)的一部分,主要用于构建可复用的、模块化的、面向服务的企业级应用程序。EJB 3.0是其重要的一个版本,它在EJB 2.x的基础上进行...
在这个"Entity-EJB3.0.rar"压缩包中,我们很可能找到了关于EJB 3.0实体Bean(Entity Beans)的示例代码和相关文档。 EJB 3.0引入了以下几个关键特性: 1. **注解驱动**:在EJB 3.0中,开发者可以使用Java注解...
在EJB3.0中,有几个关键知识点: 1. **实体Bean(Entity Beans)**:EJB3.0引入了注解驱动的实体Bean,通过`@Entity`注解来标记一个类为实体,`@Table`注解指定数据库表名。此外,`@Id`用于标识主键,可以使用`@...
EJB 3.0引入了一种新的查询语言——EJB Query Language (EJBQL),这是一种类似于SQL的语言,用于在EJB容器内部执行查询。这使得开发者可以在不离开Java环境的情况下执行复杂的数据库查询,进一步简化了开发流程。 *...
在后续章节中,教程将深入讲解EJB3.0的各个核心概念,如实体Bean(Entity Beans)、会话Bean(Session Beans)、消息驱动Bean(Message-Driven Beans)以及它们的生命周期管理、事务处理、安全性等方面。此外,还将...
4. **依赖注入(Dependency Injection)**:EJB3.0引入了JSR-250规范,提供了一种声明式的方式管理组件之间的依赖关系,减少了代码的耦合度。@Inject注解可用于注入需要的服务。 5. **容器管理的事务(Container ...
1. **实体Bean(Entity Beans)**:EJB3.0引入了JPA(Java Persistence API),它是对ORM(对象关系映射)的标准支持。开发者可以通过在Java类上使用注解来定义实体和持久化字段,无需编写XML映射文件。例如,`@...
6. **查询语言**:EJB3.0引入了JPQL(Java Persistence Query Language),这是一种面向对象的查询语言,用于检索和操作持久化实体。此外,还可以使用 Criteria API 进行更加灵活的查询。 7. **事务管理**:EJB容器...
1. **EJB组件类型**:EJB3.0包含三种主要的组件类型——会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。会话Bean用于实现业务逻辑,实体Bean代表持久化的数据,消息...
最后几章涵盖了EJB 3.0与现有系统之间的迁移策略,如何将EJB暴露为Web服务,以及如何与流行的框架Spring进行集成,以增强应用的灵活性和可扩展性。 本书不仅是一份详尽的技术指南,更是EJB 3.0实践者的宝典,它覆盖...
3. **实体管理器(EntityManager)**:EJB3.0中,通过`EntityManager`进行CRUD操作,它提供了诸如`persist()`, `merge()`, `remove()`和`find()`等方法,简化了对象-关系映射的处理。 4. **查询语言(Java ...
EJB3.0教程通常会涵盖以下几个关键知识点: 1. **实体Bean(Entity Beans)**:EJB3.0引入了注解驱动的实体管理,例如`@Entity`,`@Id`,`@GeneratedValue`等,使得数据库对象的映射更为直观。 2. **会话Bean...
在"ejb3.0实例教程"中,你可能会学习到如何创建和配置EJB组件,包括实体Bean、会话Bean以及消息驱动Bean(Message-Driven Bean)。教程可能涵盖以下步骤: 1. 配置开发环境,比如安装JDK、设置EJB容器(如Glassfish...
在实际项目中,EJB 3.0与JPA的结合使用通常包括以下几个步骤: 1. **实体定义**:创建表示数据库表的Java类,并使用JPA注解进行配置。 2. **持久化上下文**:通过EntityManager实例管理实体的生命周期,包括加载、...
从作者几个EJB3.0 项目的开发情况来看,除了第一个项目开发周期相对 有些长之外(因为开发人员之前尚未掌握EJB3.0,相当于边学边用),后面的项目从开发周期到以后的维护时间都 明显优于JDBC+java bean 或sprint...
在《传智播客EJB3.0实例教程入门精简版》中,你可以深入理解以下几个关键知识点: 1. **实体Bean(Entity Beans)**:EJB 3.0引入了基于JPA(Java Persistence API)的实体Bean,它提供了对对象-关系映射(ORM)的...
根据教程介绍,EJB 3.0主要适用于以下几类人群: - 对EJB感兴趣的学习者。 - 刚接触EJB的新手。 - 需要快速上手EJB 3.0进行项目开发的技术人员。 #### 三、EJB 3.0 运行环境配置 ##### 1. **下载与安装** - **JDK...
JPA是EJB 3.0的重要组成部分,它是ORM(Object-Relational Mapping)的标准,允许开发者使用面向对象的方式处理数据库操作,通过`@Entity`,`@Table`,`@Column`等注解定义实体类与数据库表的关系。 6. **查询语言...
项目说明: 本实例是一个用JSF1.2+EJB3.0实现的员工CRUD的一个实例,业务非常简单,主要是为了演示这两种技术的使用。若与商业应用类同,纯属巧合。 <br>2.源码说明: <br> 1)本项目开发环境 操作...