在t_checkingaccount和t_savingsaccount表中都有一个account_id,这个account_id的值依赖于t_myaccounts表中的account_id。
下面先来编写与t_myaccounts对应的实体Bean,代码如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packageentity;
importjavax.persistence.Column;
importjavax.persistence.DiscriminatorColumn;
importjavax.persistence.Entity;
importjavax.persistence.GeneratedValue;
importjavax.persistence.GenerationType;
importjavax.persistence.Id;
importjavax.persistence.Inheritance;
importjavax.persistence.InheritanceType;
importjavax.persistence.Table;
@Entity
@Table(name="t_myaccounts")
@Inheritance(strategy=InheritanceType.JOINED)
publicclassAccount
{
protectedStringid;
protectedfloatbalance;
protectedStringtype;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="account_id")
publicStringgetId()
{
returnid;
}
publicvoidsetId(Stringid)
{
this.id=id;
}
publicfloatgetBalance()
{
returnbalance;
}
publicvoidsetBalance(floatbalance)
{
this.balance=balance;
}
@Column(name="account_type")
publicStringgetType()
{
returntype;
}
publicvoidsetType(Stringtype)
{
this.type=type;
}
}
从上面的代码可以看出,只使用了@Inheritance对实体Bean进行注释。
下面编写MyCheckingAccount和MySavingsAccount类的代码:
MyCheckingAccount类的代码:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packageentity;
importjavax.persistence.Column;
importjavax.persistence.DiscriminatorValue;
importjavax.persistence.Entity;
importjavax.persistence.Id;
importjavax.persistence.PrimaryKeyJoinColumn;
importjavax.persistence.Table;
@Entity
@Table(name="t_checkingaccount")
//指定与Account类共享的主键名
@PrimaryKeyJoinColumn(name="account_id")
publicclassMyCheckingAccountextendsAccount
{
privatedoubleoverdraftLimit;
publicMyCheckingAccount()
{
//为account_type字段赋默认值
setType("C");
}
@Column(name="overdraft_limit")
publicdoublegetOverdraftLimit()
{
returnoverdraftLimit;
}
publicvoidsetOverdraftLimit(doubleoverdraftLimit)
{
this.overdraftLimit=overdraftLimit;
}
}
MySavingsAccount类的代码:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packageentity;
importjavax.persistence.Column;
importjavax.persistence.DiscriminatorValue;
importjavax.persistence.Entity;
importjavax.persistence.Id;
importjavax.persistence.PrimaryKeyJoinColumn;
importjavax.persistence.Table;
@Entity
@Table(name="t_savingsaccount")
@PrimaryKeyJoinColumn(name="account_id")
publicclassMySavingsAccountextendsAccount
{
privatedoubleinterestRate;
publicMySavingsAccount()
{
//为account_type字段赋默认值
setType("S");
}
@Column(name="interest_rate")
publicdoublegetInterestRate()
{
returninterestRate;
}
publicvoidsetInterestRate(doubleinterestRate)
{
this.interestRate=interestRate;
}
}
在上面的代码中使用构造方法来初始化了t_myaccounts表的account_type字段的值。
可以使用下面的代码进行测试:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->System.out.println(((MyCheckingAccount)em.createQuery("fromMyCheckingAccountwhereid=12")
.getSingleResult()).getBalance());
MyCheckingAccountca=newMyCheckingAccount();
ca.setBalance(342);
ca.setOverdraftLimit(120);
em.persist(ca);
MySavingsAccountsa=newMySavingsAccount();
sa.setBalance(200);
sa.setInterestRate(321);
em.persist(sa);
相关推荐
总的来说,"使用Eclipse+Jboss+MySql开发EJB"是一个综合性的任务,涉及了开发环境的搭建、企业级组件的设计与实现、数据库的连接和操作以及应用的部署与测试。掌握这一流程对于Java EE开发者来说是至关重要的,因为...
总的来说,"eclipse + JBoss 5 + EJB3开发指南中的代码"涵盖了Java EE开发的关键方面,特别是EJB3的使用。通过实践这些示例,开发者可以深入了解如何在现代企业环境中利用EJB3提高生产力,同时减少开发和维护的复杂...
### Eclipse + JBoss 5 + EJB3 开发指南 #### (1):编写第一个无状态的SessionBean ##### 一、配置开发环境 在开始编写无状态的SessionBean之前,首先需要确保开发环境已经正确配置。以下是所需的主要组件: 1...
在本文中,我们将深入探讨如何使用Eclipse IDE与JBoss应用程序服务器(版本7.x)来开发和部署一个基于EJB 3.x的简单企业级Java应用程序。EJB(Enterprise JavaBeans)是Java平台上的核心组件,它提供了一种标准的...
本实验以"广东工业大学Java EE Web编程技术课程"为背景,通过集成开发环境Eclipse和应用服务器JBoss,来实践会话Bean的创建和使用。 首先,Eclipse是一款广泛使用的Java IDE,它提供了丰富的工具和插件,支持Java ...
本教程主要关注的是如何使用Eclipse集成开发环境(IDE)配合JBossIDE插件以及JBoss应用服务器来搭建一个高效、稳定的Java EE开发环境。接下来,我们将深入探讨这个主题,详细讲解每一个步骤。 一、Eclipse简介 ...
1. **实体Bean (Entity Beans)**:代表持久化的数据对象,EJB3中实体Bean使用了JPA(Java Persistence API)进行持久化管理,使得ORM(对象关系映射)更为简便。 2. **会话Bean (Session Beans)**:处理业务逻辑,...
标题 "eclipse+jboss+jsp.rar" 涉及到的是一个关于如何在Eclipse集成开发环境中配置和使用JBoss应用服务器以及开发JSP应用程序的综合教程。这个压缩包包含了多个指南和步骤文档,帮助开发者了解和实践相关配置。 ...
**EJB3 实例教程(JBoss+Eclipse+Ant)** Enterprise JavaBeans(EJB)是Java平台上用于构建可扩展、安全且事务处理能力强的企业级应用的技术。EJB3是EJB规范的一个重大改革,它引入了许多简化开发的特性,使得企业级...
### yeclipse7.0+JBoss5.0测试EJB3.0环境搭建过程详解 在深入探讨如何在yeclipse7.0与JBoss5.0环境下构建和测试EJB3.0应用之前,让我们先了解一些背景知识。EJB(Enterprise JavaBeans)是Java平台的一部分,用于...
【标题】"myEclipse+Jboss+mysql+EJB"是一个综合性的开发环境配置,它涵盖了四个关键组件:myEclipse、Jboss、mysql和EJB。这些组件在IT行业中都扮演着重要的角色,尤其在企业级Java应用的开发与部署上。 ...
本文将围绕“Jboss下开发ejb应用之一会话bean的应用”这一主题,深入探讨如何在Jboss应用服务器上开发和部署会话Bean,以及涉及到的相关工具和源码。 会话Bean是EJB的一种类型,它代表了业务逻辑组件,为客户端提供...
在本课程测试代码中,我们将探讨如何在Eclipse集成开发环境(IDE)下使用Apache Ant构建工具,配合JBoss 5.1应用服务器进行EJB的开发和部署。 【Eclipse】是广泛使用的开源Java IDE,支持多种Java项目类型,包括EJB...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
《经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发》介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message Driven Bean的...
在IT行业中,开发Java企业级应用(J2EE应用)是一项关键技能,而Eclipse作为一款强大的集成开发环境(IDE)和JBoss Application Server(现在称为WildFly)作为开源的应用服务器,是Java开发者常用的选择。...