CMP2.0 relationships问题:
CMP2.0 relationships问题:
问题1:
custormer bean,address bean relationship 为1:n
在customer entity bean中创建customer bean与address bean 的关系代码如下:
public abstract Collection getAddresses();
public abstract void setAddresses(Collection addresses);
问:
1.getAddresses()反回的是什么!addresses bean 实例,addresses bean object,addresses remote interface or ...
也就是说 parameter "addresses" 表示的是什么??
2.customer bean 通过上面的代码及ejb-jar描述文件来表示customer bean 和address的1:n关系,那么bean发布后后台数
据库表的关系如何建立,customer bean 和address bean 如何关联?
如下是我的测试:
数据库 oracle8i 发布后自动建立的表关系如下:
customer bean ------ CustomerBeanTable(customerID,firstname,lastname)
addresses bean ------ AddressBeanTable(addressID,city,state,street,zip)
relationship table ----- CustomerBean_addresses_Addre(_AddressBean_addressID,_CustomerBean_customerID)
假如customer bean 是通过customerID和firstname两个域和address bean 关联,customer bean 中关联的代码如何写,
后台库的表又会如何创新呢?
问题2:
一个用户,添加多个地址的过程如下:
1.create address bean(向后台表中添加数据)
//code in address bean
public String ejbCreate (
String cid,
String id,
String street,
String city,
String zip,
String state)
throws CreateException {
return create (id, street, city, zip, state);
}
private String create(
String id,
String street,
String city,
String zip,
String state)
throws CreateException {
setAddressID(id);
setStreet(street);
setCity(city);
setZip(zip);
setState(state);
return id;
}
2.解决customer bean 和 address bean 的关系
//紧接上面代码
public void ejbPostCreate (
String cid,
String id,
String street,
String city,
String zip,
String state)
throws CreateException {
postCreate(cid);
}
private void postCreate (String cid) {
try {
Context ic = new InitialContext();
LocalCustomerHome home = (LocalCustomerHome)
ic.lookup("java:comp/env/ejb/CustomerRef");
LocalCustomer customer = home.findByPrimaryKey(cid);
customer.addAddress((LocalAddress)context.getEJBLocalObject());
} catch (Exception ex) {
context.setRollbackOnly();
ex.printStackTrace();
}
}
//customer bean addAddress()
public void addAddress (LocalAddress address) {
getAddresses().add(address);
}
//customer bean getAddresses()
public abstract Collection getAddresses();
上面代码中不明白的地方如下:
通过下面代码,customer bean 和 address bean 关联(向CustomerBean_addresses_Addre表中加入相应的customerID,addressID)
public void addAddress (LocalAddress address) {
getAddresses().add(address);
}
那么这段代码是如何运行的呢?如何神气的在表CustomerBean_addresses_Addre中加入相应的customerID,addressID。
传入的参数address代表了什么?
getAddresses().add(address)是如何运作的呢!是什么意思???
问题3:
如果一个表有100多个字段,是不是都需要持久化,如果一部分字段不持久化,可以吗?如何访问它!
问题4:
可以用j2ee,ejb(cmp)来开发象oracle applicaiton 11i一样的应用吗?
问题5:
客户端如果是application,那么vb,pb等开发的客户端程序如何调用bean??