`
ranyut
  • 浏览: 259886 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

EJB3实体映射之多表映射

    博客分类:
  • EJB3
EJB 
阅读更多
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一对一关系映射实例

    为了充分利用EJB3的一对一关系映射,开发者需要理解JPA(Java Persistence API)的规范,包括实体、持久化上下文、查询语言(JPQL)以及各种关系映射的注解。同时,熟悉EJB容器提供的服务,如自动事务管理、安全性、...

    EJB3.0的一个单表映射实体bean

    EJB3.0的一个单表映射实体bean,实现对数据的增、删、改、查

    EJB3多对多关系映射实例

    本实例将聚焦于EJB3中的多对多关系映射,这是数据库设计中常见的关系类型,常用于描述两个实体之间复杂的关系,如用户与角色、商品与类别等。 在Java世界中,我们通常使用JPA(Java Persistence API)和其实现如...

    2022年EJB 3.0开发指南之多表映射Java教程.docx

    在EJB 3.0开发中,多表映射是一个重要的概念,特别是在处理复杂数据模型时。本教程聚焦于如何使用Java和EJB 3.0标准来映射实体Bean到多个数据库表。EJB(Enterprise JavaBeans)是Java EE平台的一部分,用于构建企业...

    Ejb开发实体bean

    3. **开发实体Bean**:实体Bean需要实现特定的接口,如`javax.ejb.EntityBean`或使用注解`@Entity`(在Java EE 5及以后版本)。这些Bean通常使用JPA(Java Persistence API)进行持久化操作,通过ORM(对象关系映射...

    JPA学习笔记-EJB-04JPA关联映射总结

    3. `@ManyToOne`:多对一关系,多个实体对应另一个实体的单一实例。 4. `@ManyToMany`:多对多关系,多个实体可以关联多个其他实体,通常需要一个中间表来存储关系。 在实际应用中,JPA的关联映射不仅可以简化对象...

    EJB3开发Entity

    EJB3支持一对多(@OneToMany)、多对一(@ManyToOne)、一对一(@OneToOne)和多对多(@ManyToMany)的关系映射,通过注解来定义实体之间的关联。 9. **懒加载和即时加载** EJB3支持懒加载和即时加载策略,控制...

    ejb实体bean实例

    实体Bean(Entity Bean)是EJB的一种类型,它代表业务逻辑中的持久化对象,通常映射到数据库中的表。本篇文章将深入探讨EJB实体Bean的概念、其在Eclipse集成开发环境中的使用,以及与MySQL数据库的集成。 ### 一、...

    ejb3 第10讲 --开发单表映射的实体bean

    在学习和实践中,可以通过以下步骤创建一个单表映射的EJB实体Bean: 1. 定义实体类,使用`@Entity`、`@Table`等注解。 2. 注解属性以匹配数据库表的列。 3. 创建`EntityManager`实例,用于操作Bean。 4. 使用`...

    EJB3持久化

    【EJB3持久化】是Enterprise JavaBeans 3.0版本中的一个重要特性,它引入了更轻量级的持久化模型,旨在简化企业级应用程序的数据持久化操作。EJB3.0不再局限于传统的EJB2.1实体Bean,而是采用了POJO(Plain Old Java...

    EJB3.0实体的注解规范

    在EJB3.0中,实体Bean被设计为简单的Plain Old Java Objects (POJOs),这与Hibernate的持久化对象概念相同,它们的映射关系均通过JDK 5.0引入的注解来定义,同时EJB3规范也支持XML描述。 在EJB3的注解中,主要分为...

    EJB3 PPT教程

    同时,EJB3还支持类的继承映射,使得复杂的对象结构能够有效地映射到数据库中。 **五、持久化实体管理器(EntityManager)** EntityManager是JPA的主要接口,用于操作实体对象,包括查询、保存、更新和删除。通过`@...

    浪曦_EJB3.0实例教程_多对多映射

    综上所述,EJB 3.0的多对多映射提供了灵活且易于配置的方式处理复杂的实体关系,使得Java EE开发者能够更加专注于业务逻辑,而不是底层的数据库操作。在实际开发中,应结合具体需求,合理设计和优化多对多映射,以...

    ejb3 带源码

    - **实体Bean(Entity Bean)**:代表数据库中的持久化对象,EJB3引入了JPA(Java Persistence API),使得实体Bean的定义更简洁,通过注解可以直接映射到数据库表。 - **会话Bean(Session Bean)**:处理业务...

    Jboss下开发ejb应用之一实体bean的应用

    首先,理解EJB实体Bean的含义至关重要。实体Bean代表持久化的业务对象,它们与数据库中的记录相对应,负责存储和检索数据。EJB 3.0引入了注解驱动的开发方式,大大简化了实体Bean的编程模型,使得开发者不再需要编写...

    ejb3-persistence

    例如,@Entity表示一个实体类,@Id标识主键,@Table定义实体所对应的数据库表,@Column则用于指定字段与数据库列的映射。这种注解方式极大地简化了EJB的使用,使得它在轻量级应用中也变得可行。 ejb3-persistence....

    EJB3应用实例

    `@Entity`注解标记实体类,`@Table`定义映射的数据库表,`@Id`定义主键字段。 5. **本地接口(Local Interface)和远程接口(Remote Interface)**:EJB3允许定义本地接口,只在同一个JVM内的客户端使用,减少了...

    JPA 批注参考 EJB3.0实体Bean注解详细解析

    15. **@SecondaryTable** - 用于指定一个实体映射到多个表时,除了主表之外的辅助表。 #### 三、配置实体的示例 - 使用 `@Entity` 和 `@Table` 批注定义实体和数据库表的映射关系。 - 使用 `@Id` 和 `@...

    EJB3入门例子

    2. **持久化框架(Persistence Framework)**:EJB3引入了JSR-220规范的JPA(Java Persistence API),使得对象关系映射变得更加简单。通过`@Entity`、`@Table`、`@Id`等注解,开发者可以直接在Java类上定义数据模型...

    EJB3 入门经典 源码

    6. **实体bean(Entity Beans)**:EJB3中的实体bean通常对应数据库表,使用JPA进行持久化管理。它们可以是无容器管理的(CMP,Container-Managed Persistence)或由开发者管理的(BMP,Bean-Managed Persistence)...

Global site tag (gtag.js) - Google Analytics