`

Enterprise JavaBean3.0 (第5版)

阅读更多

1. 实体关系

    1.1 单向One-to-One (Customer 1-1 Address)

        Public class Customer implements Serializable {

            private Address homeAddress;

            @OneToOne(cascade={CascadeType.ALL})    //cascade可以不写

            @JoinColumn(name="ADRDRESS_ID")    //JoinColumn可以不写

            或者使用@PrimaryKeyJoinColumn来代替上一行

            public Address getAddress() { return homeAddress; }

            public void setAddress(Address address) { this.homeAddress = address; }

        }

    1.2 双向One-to-One (Customer 1-1 CreditCard)

        Public class Customer implements Serializable {

            private CreditCard creditCard;

            @OneToOne(cascade={CascadeType.ALL})    //cascade可以不写

            @JoinColumn(name="CREDIT_CARD_ID")    //JoinColumn可以不写

            public CreditCard getCreditCard() { return creditCard; }

            public void setCreditCard(CreditCard creditCard) { this.creditCard = creditCard; }

        }

        Public class CreditCard implements Serializable {

            private Customer customer;

            @OneToOne(mappedBy="creditCard")  

            public Customer getCustomer() { return customer; }

            public void setCustomer(Customer customer) { this.customer = customer; }

        }

        创建实例

        Customer cust = new Customer();

        CreditCard card = new CreditCard();

        cust.setCreditCard(card);

        card.setCustomer(cust);

        em.persist(cust);

        删除实例

        Customer cust = em.find(Customer.class, id);

        em.remove(cust.getCreditCard());

        cust.setCreditCard(null);    

    1.3 单向One-to-Many (Customer 1-N Phone)

        Public class Customer implements Serializable {

            private Collection<Phone> phoneNumbers = new ArrayList<Phone>();

            @OneToMany(cascade={CascadeType.ALL})    //cascade可以不写

            @JoinColumn(name="CUSTOMER_ID")    //JoinColumn可以不写

            public Collection<Phone> getPhoneNumbers() {return phoneNumbers;}

            public void setPhoneNumbers(Collection<Phone> phoneNumbers) {this.phoneNumbers = phoneNumbers;}

        }

        另外可以使用关系表映射

        Public class Customer implements Serializable {

            private Collection<Phone> phoneNumbers = new ArrayList<Phone>();

            @OneToMany(cascade={CascadeType.ALL})    //cascade可以不写

            @JoinTable(name="CUSTOMER_PHONE",

                            

    2.8 Native SQL

        String sqlstr = "SELECT p.phone_PK, p.phone_number FROM Phone p";

        em.createNativeQuery(sqlstr, Phone.class);

    2.9 具名查询

        预定义好EJB QL或者Native SQL

        @NamedQueries(

            @NamedQuery(name="getCustomer", query="SELECT c FROM Customer where c.firstName=?1"),

            @NamedQuery(name="findCustomer", query="SELECT c FROM Customer")

        )

        em.createNamedQuery("getCustomer");

        query.setParameter(1, "Charles");

3. 回调和监听器

    3.1 回调

        PrePersist, PostPersist, PostLoad, PreUpdate, PostUpdate, PreRemove, PostRemove

        @PrePersist void beforeInsert() {}

        定义一系列方法,可以在执行具体的操作之前或者之后,加入相应的方法

    3.2 监听器

        如果我们定义了一个Class方法,其中有很多PrePersist之类的方法,那么在执行Entity的时候,

        我们可以注册成Listeners,以实现其中的调用方法,主要是拦截Entity生命周期的事件

        @Entity

        @EntityListeners({TitanAuditLogger.class, EntityJmxNotifier.class})

        public class Cabin {}

        在Cabin执行Persist操作时,相应TitanAuditLogger中的方法就会被调用

        子类能继承基类的监听器,如果两者都定义,那么子类都会用到

4. Session Bean

    4.1 两种调用方式

        1. call-by-value: 远程接口,无论客户端是在同一JVM还是远程,EJB容器都对参数和返回值进行值拷贝

        2. call-by-reference: 本地接口,不会值拷贝

评论

相关推荐

    Enterprise JavaBean 3.0 中文版

    综上所述,Enterprise JavaBean 3.0 提供了一套全面的企业级应用开发框架,通过简化API、注解驱动和强大的服务支持,极大地提高了开发效率和代码可维护性。在EJB 3.0中,开发者可以更专注于业务逻辑,而非底层基础...

    Enterprise JavaBean 3.0 persistence

    Enterprise JavaBean(EJB)3.0 是Java平台企业版(Java EE)中的核心组件,专为构建可扩展、安全且事务处理能力强大的分布式应用程序而设计。在EJB 3.0中,持久化(Persistence)是核心特性之一,它简化了对象与...

    Enterprise JavaBean3.0中文前5章加英文全部第二部分

    《企业级JavaBean3.0(EJB3.0)》是Java开发中不可或缺的重要组成部分,尤其对于构建大型、分布式的企业应用系统来说,EJB3.0提供了强大的服务和组件模型。这部分内容涵盖的是该书的前五章,以及完整的英文版第二...

    Enterprise JavaBean 3.0, Bill Burke

    ### 企业级JavaBean 3.0:Bill Burke #### 一、企业级JavaBean (EJB) 3.0 概述 企业级JavaBean(EJB)3.0是Java平台的一部分,用于构建可扩展、健壮的企业级应用程序。EJB 3.0在前代版本的基础上进行了大量的改进...

    Enterprise JavaBeans 3.0 中文版 (第5版) .pdf 下载.rar

    综上所述,Enterprise JavaBeans 3.0带来了许多创新,如JPA、注解驱动的bean、会话bean和消息驱动bean,以及强大的事务和安全特性。这些特性使得EJB 3.0成为构建企业级Java应用的理想选择,尤其是对于需要处理大规模...

    Enterprise JavaBeans 3.0 中文版

    《企业JavaBeans 3.0 中文版》是Java企业级开发的重要参考资料,它详细介绍了EJB 3.0规范,这是一个里程碑式的版本,极大地简化了EJB的使用,提升了开发效率。本教程旨在帮助开发者深入理解和熟练运用EJB 3.0技术。 ...

    Enterprise JavaBean基础.doc

    Enterprise JavaBean基础

    Enterprise javaBean

    介绍 javaBean的 OReilly的书

    EJB 资料,enterprise javabean

    ### EJB (Enterprise JavaBean) 相关知识点详解 #### 一、EJB 概念与历史背景 EJB(Enterprise JavaBeans)是Java平台的一部分,用于开发和管理基于组件的企业级应用程序。它由Sun Microsystems在Java 2平台企业版...

    根据表结构自动生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第5版)

    标题中的“根据表结构自动生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第5版)”指的是一个能够帮助开发者将数据库中的表结构自动转换为Java编程语言中的JavaBean对象的工具。这个工具的强大之处在于它...

    enterprise javabean 的cmp

    Enterprise JavaBeans (EJB) 是Java平台上用于构建企业级分布式应用程序的一种核心技术。 CMP,全称为Container-Managed Persistence(容器管理持久化),是EJB的一个关键特性,它为开发者提供了数据库访问的简化...

    EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。

    ### EJB (Enterprise JavaBean)概述 EJB (Enterprise JavaBean)是J2EE(Java 2 Platform, Enterprise Edition)框架的重要组成部分,它提供了一套用于构建可扩展、分布式的多层企业应用的标准。EJB的目标是通过抽象...

    根据表结构生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第5版)

    我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...

    Enterprise+Java+beans+3.0+第五版

    EJB(Enterprise JavaBeans)是Java平台企业版(Java EE)的核心组成部分,主要用于构建可扩展、安全且可靠的分布式企业级应用。它提供了一种组件模型,让开发人员可以专注于业务逻辑,而无需关心底层的基础设施。 ...

    2022年JavaBean(EJB) 3.0 全新体验Java教程.docx

    JavaBean(Enterprise JavaBeans,EJB)3.0 是一种企业级应用开发的重要技术,尤其在Java平台上。EJB3.0的发布旨在解决EJB2.x版本中存在的复杂性问题,提升开发效率和生产力。本教程将聚焦于EJB3.0的改进,包括元...

    javabean介绍

    从此,JavaBean就可以扩展为一个java web 应用的标准部件,并且JavaBean部件框架已经扩展为企业版的 Bean(EJB)。  JavaBean 和 Server Bean(通常称为 Enterprise JavaBean (EJB))有一些基本相同之处。它们都是...

    学习EJB3.0(不是扫描版的,很清晰的,值得学习)

    **EJB3.0:企业级JavaBean 3.0详解** EJB(Enterprise JavaBeans)是Java EE(Java Platform, Enterprise Edition)平台的核心组成部分,主要用于构建可部署在服务器端的分布式应用程序。EJB3.0是其第三个主要版本...

    JAVABEAN

    JavaBean是一种特殊的Java类,它是Java编程语言中的一个核心概念,尤其在开发企业级应用程序时极为常见。JavaBean遵循特定的规范,使它们能够被其他Java应用或开发工具(如IDEs)识别、可视化和操作。JavaBean的主要...

Global site tag (gtag.js) - Google Analytics