`
senton
  • 浏览: 205990 次
  • 性别: Icon_minigender_1
  • 来自: 紫禁城
社区版块
存档分类
最新评论

EJB3.0 学习教程(连载) 第五部分

 
阅读更多
 
第五部分   映射
5.1    一对一映射
双向一对一关系需要在关系维护端(owner side)的one2one Annotition定义mappedBy属性。建表时在关系被维护端(inverse side)建立外键列指向关系维护端的主键列。
假设Country 和 Capital 是双向一对一的关系,具体元数据声明如下:
                               
public class Country {
        @OneToOne(optional = true,cascade = CascadeType.ALL, mappedBy = "country")
        private Capital capital;
}
 
public class Capital {
        @OneToOne(optional = false, cascade = CascadeType.ALL)
        @JoinColumn(name = "COUNTRY_ID", referencedColumnName = "id")
        private Country country;
                
                       
代码中元数据的说明:
元数据描述:
@OneToOne(optional = true,cascade = CascadeType.ALL, mappedBy = "country")
optional声明关系是否是必须存在的,即是否允许其中一端为null。
cascade声明级联操作。
@JoinColumn(name = "COUNTRY_ID", referencedColumnName = "id")
name声明外键列的名字,referencedColumnName声明外键指向列的列名。
5.2   一对多映射
双向一对多关系,一是关系维护端(owner side),多是关系被维护端(inverse side)。 建表时在关系被维护端建立外键列指向关系维护端的主键列。
假设Father 和 Child 是双向一对多的关系,具体元数据声明如下:
                               
public class Father {
        @OneToMany(targetEntity = Child.class, cascade = CascadeType.ALL, mappedBy = "father")
        public List<Child> getChildren() {
               return children;
        }
}
 
public class Child {
        @ManyToOne
        @JoinColumn(name = "FATHER_ID", referencedColumnName = "id")
        public Father getFather() {
               return father;
        }
}
 
代码中元数据的说明:
元数据描述:
@OneToMany(targetEntity = Child.class, cascade = CascadeType.ALL, mappedBy = "father")
targetEntity = Child.class表明关系另一端的实体类型
cascade声明级联操作。
mappedBy声明关系维护端的字段(field)名。
@ManyToOne
@JoinColumn(name = "FATHER_ID", referencedColumnName = "id")
name声明外键列的名字,referencedColumnName声明外键指向列的列名。
5.3     多对多映射
多对多映射采取中间表连接的映射策略,建立的中间表将分别引入两边的主键作为外键。
EJB3对于中间表的元数据提供了可配置的方式,用户可以自定义中间表的表名,列名。
假设Teacher 和 Student是多对多的关系,具体元数据声明如下:
                               
pubic class Teacher{
        @ManyToMany(targetEntity = Student.class, cascade = CascadeType.PERSIST)
        @JoinTable(table = @Table(name = "M2M_TEACHER_STUDENT"),
        joinColumns = @JoinColumn(name = "TEACHER_ID", referencedColumnName = "ID"),
        inverseJoinColumns = @JoinColumn(name = "STUDENT_ID", referencedColumnName = "ID"))
        public List<Student> getStudents() {return students;}
                                      
}
public class Student{
        @ManyToMany(targetEntity = Teacher.class, mappedBy = "students")
        public List<Teacher> getTeachers() {
               return teachers;
        }
}
                       
代码中元数据的说明:
元数据描述:
@ManyToMany(targetEntity = Student.class, cascade = CascadeType.PERSIST)
targetEntity = Student.class表明关系另一端的实体类型。cascade声明级联操作。
@JoinTable(table = @Table(name = "M2M_TEACHER_STUDENT"),
joinColumns = @JoinColumn(name = "TEACHER_ID", referencedColumnName = "ID"),
inverseJoinColumns = @JoinColumn(name = "STUDENT_ID", referencedColumnName = "ID"))
JoinTable配置中间表信息,它由3个部分组成:
1) table = @Table(name = "M2M_TEACHER_STUDENT") ,声明中间表的名字
2) joinColumns ,定义中间表与关系维护端的外键关系。
3) inverseJoinColumns,定义中间表与inverse端的外键关系.
 
分享到:
评论

相关推荐

    EJB 3.0实例教程.pdf

    **企业级JavaBeans(EJB)3.0详解** 企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上用于构建分布式...《EJB 3.0实例教程》这本书应该会详细解释这些概念,并通过实例帮助读者掌握EJB 3.0的实践应用。

    EJB3.0实例教程(PDF)

    **EJB3.0实例教程**是一份详细指导开发者如何使用Enterprise JavaBeans 3.0(EJB3.0)技术进行企业级应用开发的电子文档。EJB3.0是Java EE(Java Platform, Enterprise Edition)规范的一部分,旨在简化企业级组件的...

    电子书-EJB3.0实例教程

    通过《EJB 3.0实例教程》这本书,读者可以深入理解这些概念,并通过实际案例学习如何在项目中运用EJB 3.0。书中可能涵盖了创建和配置EJB组件、使用JPA进行ORM、设计事务策略、编写JPQL查询以及管理Bean的生命周期等...

    EJB3.0实例教程及源代码

    **EJB3.0实例教程及源代码** 本教程专注于企业级JavaBeans(EJB)3.0技术的实践应用,由黎活明提供。EJB是Java平台上的一个核心组件,用于构建可扩展的、可靠的、安全的分布式应用程序。EJB 3.0是EJB规范的一个重要...

    ejb3.0入门图文教程

    在整个学习过程中,你将了解到EJB 3.0的核心概念,如依赖注入、容器管理的事务、安全性和性能优化。这些知识对于理解和构建企业级Java应用程序至关重要。同时,EJB 3.0的可读性强和简洁的编程模型也使其成为开发者...

    中文最新EJB3.0实例教程下载

    在《中文最新EJB3.0实例教程》中,你将学习如何创建和部署EJB3.0组件,如何使用JPA进行数据持久化,以及如何利用依赖注入和事务管理构建可扩展和可靠的业务应用。教程中可能包含实际的项目案例,通过实践操作来加深...

    EJB3.0入门教程 PDF

    **企业级JavaBeans(EJB)3.0入门教程** EJB(Enterprise JavaBeans)是Java平台企业版(Java EE)的核心组件之一,用于构建可扩展、安全且可靠的分布式企业应用。EJB 3.0是该技术的一个重大革新,引入了许多简化...

    EJB3.0实例教程(源代码).rar )

    **企业级JavaBeans(EJB)3.0详解** 企业级JavaBeans(EJB)是Java平台上用于构建可部署在企业级服务器上的组件模型。...学习这个教程,你将能够掌握EJB 3.0的核心概念,并有能力创建和部署自己的EJB组件。

    EJB3.0实例教程

    EJB3.0实例教程 博文链接:https://brxonline.iteye.com/blog/153889

    ejb3.0实例教程

    ejb3.0实例教程 ejb3.0实例教程 ejb3.0实例教程 ejb3.0实例教程 ejb3.0实例教程

    EJB3.0入门图文教程

    EJB3.0入门图文教程电子书,Jbuilder 2007,新版JBuilder2007基于Eclipse平台,与以往的JBuilder版本完全不 同.借助于Eclipse的开放平台以及丰富的插件,使得JBulider对当前的流行的框架支持非 常好,同时支持EJB3.0的...

    EJB3.0实例教程源码

    本实例教程将专注于EJB 3.0中的多对多映射,这是关系数据库与对象模型之间关系映射的一种常见模式。 多对多映射在现实世界中很常见,例如在学生和老师的关系中,一个学生可以有多个老师,同时一个老师也可以教多个...

    传智播客_EJB3.0视频教程网盘下载

    传智播客_EJB3.0视频教程网盘下载,本教程仅供学习之用,请勿用于商用,一切后果自负。

    EJB3.0入门教程

    **EJB3.0入门教程** 企业级JavaBean(Enterprise JavaBeans,EJB)是Java平台上用于构建可扩展、安全且事务处理能力强大的企业级应用的框架。EJB3.0是EJB技术的一个重大革新,它极大地简化了开发过程,降低了对...

    EJB学习大全(EJB3.0实例教程 JPA教程 实战EJB)

    【EJB学习大全】是针对企业级Java应用开发的一个重要主题,主要涵盖了EJB3.0、JPA教程以及实战EJB的相关知识。EJB,全称为Enterprise JavaBeans,是Java平台上的一个核心组件,主要用于构建分布式、面向服务的企业级...

    EJB3.0 实例教程(pdf)以及所带源代码(10M)

    **EJB3.0 实例教程详解** ...总的来说,EJB3.0实例教程对于希望深入学习和应用Java EE的企业级开发人员来说,是一份宝贵的资源。结合教程和源代码,你可以系统地学习EJB3.0的各个方面,从而提升你的Java EE开发技能。

    精通EJB3.0 中文版 3/3

    《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第...

Global site tag (gtag.js) - Google Analytics