EJB将一个类的属性映射到多张表中:
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.SecondaryTable;
@Entity
// name 另一张表的表名 pkJoinColumns 另一张表的PK
@SecondaryTable(name = "Address",
pkJoinColumns = {@PrimaryKeyJoinColumn(name = "address_id")} )
public class MainTable implements Serializable{
private static final long serialVersionUID = 4016777473296175005L;
private Integer id;// 主键
private String name;// 姓名
private String address;// 地址,该映射的字段分布在Address表
private String postcode;// 邮编,该映射的字段分布在Address表
@Id
@GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(nullable=false,length=32)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 指定映射到表名为 Address 的表中
@Column(table="Address")
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
// 指定映射到表名为 Address 的表中
@Column(length=6, table="Address")
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
@Override
public int hashCode() {
int hash = 0;
hash += (this.id != null ? this.id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof MainTable)) {
return false;
}
MainTable other = (MainTable)object;
if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) return false;
return true;
}
@Override
public String toString() {
return this.getClass().getName()+ "[id="+id+ ",name="+ name+ ",address="+ address+ ",postcode="+ postcode + "]";
}
}
分享到:
相关推荐
为了充分利用EJB3的一对一关系映射,开发者需要理解JPA(Java Persistence API)的规范,包括实体、持久化上下文、查询语言(JPQL)以及各种关系映射的注解。同时,熟悉EJB容器提供的服务,如自动事务管理、安全性、...
EJB3.0的一个单表映射实体bean,实现对数据的增、删、改、查
本实例将聚焦于EJB3中的多对多关系映射,这是数据库设计中常见的关系类型,常用于描述两个实体之间复杂的关系,如用户与角色、商品与类别等。 在Java世界中,我们通常使用JPA(Java Persistence API)和其实现如...
在EJB 3.0开发中,多表映射是一个重要的概念,特别是在处理复杂数据模型时。本教程聚焦于如何使用Java和EJB 3.0标准来映射实体Bean到多个数据库表。EJB(Enterprise JavaBeans)是Java EE平台的一部分,用于构建企业...
3. **开发实体Bean**:实体Bean需要实现特定的接口,如`javax.ejb.EntityBean`或使用注解`@Entity`(在Java EE 5及以后版本)。这些Bean通常使用JPA(Java Persistence API)进行持久化操作,通过ORM(对象关系映射...
3. `@ManyToOne`:多对一关系,多个实体对应另一个实体的单一实例。 4. `@ManyToMany`:多对多关系,多个实体可以关联多个其他实体,通常需要一个中间表来存储关系。 在实际应用中,JPA的关联映射不仅可以简化对象...
EJB3支持一对多(@OneToMany)、多对一(@ManyToOne)、一对一(@OneToOne)和多对多(@ManyToMany)的关系映射,通过注解来定义实体之间的关联。 9. **懒加载和即时加载** EJB3支持懒加载和即时加载策略,控制...
实体Bean(Entity Bean)是EJB的一种类型,它代表业务逻辑中的持久化对象,通常映射到数据库中的表。本篇文章将深入探讨EJB实体Bean的概念、其在Eclipse集成开发环境中的使用,以及与MySQL数据库的集成。 ### 一、...
在学习和实践中,可以通过以下步骤创建一个单表映射的EJB实体Bean: 1. 定义实体类,使用`@Entity`、`@Table`等注解。 2. 注解属性以匹配数据库表的列。 3. 创建`EntityManager`实例,用于操作Bean。 4. 使用`...
【EJB3持久化】是Enterprise JavaBeans 3.0版本中的一个重要特性,它引入了更轻量级的持久化模型,旨在简化企业级应用程序的数据持久化操作。EJB3.0不再局限于传统的EJB2.1实体Bean,而是采用了POJO(Plain Old Java...
在EJB3.0中,实体Bean被设计为简单的Plain Old Java Objects (POJOs),这与Hibernate的持久化对象概念相同,它们的映射关系均通过JDK 5.0引入的注解来定义,同时EJB3规范也支持XML描述。 在EJB3的注解中,主要分为...
同时,EJB3还支持类的继承映射,使得复杂的对象结构能够有效地映射到数据库中。 **五、持久化实体管理器(EntityManager)** EntityManager是JPA的主要接口,用于操作实体对象,包括查询、保存、更新和删除。通过`@...
综上所述,EJB 3.0的多对多映射提供了灵活且易于配置的方式处理复杂的实体关系,使得Java EE开发者能够更加专注于业务逻辑,而不是底层的数据库操作。在实际开发中,应结合具体需求,合理设计和优化多对多映射,以...
- **实体Bean(Entity Bean)**:代表数据库中的持久化对象,EJB3引入了JPA(Java Persistence API),使得实体Bean的定义更简洁,通过注解可以直接映射到数据库表。 - **会话Bean(Session Bean)**:处理业务...
首先,理解EJB实体Bean的含义至关重要。实体Bean代表持久化的业务对象,它们与数据库中的记录相对应,负责存储和检索数据。EJB 3.0引入了注解驱动的开发方式,大大简化了实体Bean的编程模型,使得开发者不再需要编写...
例如,@Entity表示一个实体类,@Id标识主键,@Table定义实体所对应的数据库表,@Column则用于指定字段与数据库列的映射。这种注解方式极大地简化了EJB的使用,使得它在轻量级应用中也变得可行。 ejb3-persistence....
`@Entity`注解标记实体类,`@Table`定义映射的数据库表,`@Id`定义主键字段。 5. **本地接口(Local Interface)和远程接口(Remote Interface)**:EJB3允许定义本地接口,只在同一个JVM内的客户端使用,减少了...
15. **@SecondaryTable** - 用于指定一个实体映射到多个表时,除了主表之外的辅助表。 #### 三、配置实体的示例 - 使用 `@Entity` 和 `@Table` 批注定义实体和数据库表的映射关系。 - 使用 `@Id` 和 `@...
2. **持久化框架(Persistence Framework)**:EJB3引入了JSR-220规范的JPA(Java Persistence API),使得对象关系映射变得更加简单。通过`@Entity`、`@Table`、`@Id`等注解,开发者可以直接在Java类上定义数据模型...
6. **实体bean(Entity Beans)**:EJB3中的实体bean通常对应数据库表,使用JPA进行持久化管理。它们可以是无容器管理的(CMP,Container-Managed Persistence)或由开发者管理的(BMP,Bean-Managed Persistence)...