Container
首先
由於這些服務的存在
這章我們的實例是一個container
RosterApp總攬
這個RosterApp應用程序維持在一些體育運動聯盟的球員的名單以及球隊的名單
他通過RosterEJB會話bean的romote接口訪問RosterEJB
RosterEJB訪問
這些實體bean采用CMP方式
編寫PlayerEJB
這個實體bean代表一個存儲在數據庫的球員
Entity bean class
為了實現CMP
這個bean不能實現的方法:
Access方法
一個CMP實體bean有persistent和relationship
你所作的只是在配置時描述他
配置中這些persistent需要被容器維持
我們需要這些方法訪問這些
public abstract String getPlayerId();
public abstract void setPlayerId(String id);
public abstract String getName();
public abstract void setName(String name);
public abstract String getPosition();
public abstract void setPosition(String position);
public abstract double getSalary();
public abstract void setSalary(double salary);
這些方法的名字以get或者set開頭
這和JeanBean是一樣的
同時我們需要Access方法訪問Relationship在這個應用程序中
public abstract Collection getTeams();
public abstract void setTeams(Collection teams);
Select方法
一個Select方法和一個Finder方法類似
但是
通常被一個商業方法調用
public abstract Collection ejbSelectLeagues(LocalPlayer player)
throws FinderException;
public abstract Collection ejbSelectSports(LocalPlayer player)
throws FinderException;
select方法名必須滿足
商業方法由於select方法不能被客戶直接調通
public Collection getLeagues() throws FinderException {
LocalPlayer player = (team
return ejbSelectLeagues(player);
}
public Collection getSports() throws FinderException {
LocalPlayer player = (team
return ejbSelectSports(player);
}
實體bean方法
由於是CMP
ejbCreate方法:
public String ejbCreate (String id
setPlayerId(id);
setName(name);
setPosition(position);
setSalary(salary);
return null;
}
注意return null除非debug的需要
ejbPostCreate方法和ejbCreate方法的參數和返回類型一樣
容器會自動管理同步
local home interface:
這裡定義了creat
package team;
import java
import javax
public interface LocalPlayerHome extends EJBLocalHome {
public LocalPlayer create (String id
throws CreateException;
public LocalPlayer findByPrimaryKey (String id)
throws FinderException;
public Collection findByPosition(String position)
throws FinderException;
public Collection findByLeague(LocalLeague league)
throws FinderException;
}
loca interface:
這裡定義了一些商業方法
package team;
import java
import javax
public interface LocalPlayer extends EJBLocalObject {
public String getPlayerId();
public String getName();
public String getPosition();
public double getSalary();
public Collection getTeams();
public Collection getLeagues() throws FinderException;
public Collection getSports() throws FinderException;
}
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19402.html