就像我们在设计模式4中看到的, entity bean的实现大小被缩减到在ejbcreate(), getdata()and setdata()方法中的仅仅几行,不管cmp字段的数目.下一步是建模公司和雇员的entity beans,这个有点繁琐而且建议读者先对borland公司的<ejb程序员指南>的or mapping和高级cmp有所了解.
对这个关系建模根本不需要对结构的代码变化,然而entity beans实现类需要一点点修改来反映两个实体间的关系,鉴于此deployment descriptor需要有小的修改.
象以前, entity bean从结构继承,下面是公司entity bean的代码片段:
public class companybean extends companystruct
implements entitybean {
entitycontext entitycontext;
// cmp for all fields in the companystruct
public java.util.collection employees; //one-to-many
//rest of the code including getdata() and setdata()
public java.util.collection getemployees() {
return employees;
}
}
public class employeebean extends employeestruct
implements entitybean {
entitycontext entitycontext;
//cmp for all fields in employeestruct except
//the comid
public company company;//remote reference to company
}
public void ejbload() {
try {
comid=(company ==
null)?null:(integer)company.getprimarykey();
} catch (exception e) {
//throw some runtime exception (e.g. ejbexception)
}
}
public void ejbstore() {
try {
company = (comid ==
null)?null:beanglossary.getcompanyhome().findbyprimary
key(comid);
} catch (exception e) {
//throw some runtime exception (e.g. ejbexception)
}
}
public class beanglossarysb implements sessionbean {
private context context = null;
public javax.naming.context getcontext() throws
namingexception {
if (context == null)
context = new javax.naming.initialcontext();
return context;
}
// company
private companyhome companyhome = null;
public companyhome getcompanyhome() throws
namingexception {
companyhome = ((companyhome)
javax.rmi.portableremoteobject.narrow(
getcontext().lookup("java:comp/env/ejb/company"),
companyhome.class));
return companyhome;
}
// rest of the ejbs
}Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器