cmp存数据库一问
看一个例子,数据库有表BnProject,对应字段有:InstanceNs、Parent、Name、Status、Creator、State、CreationDate、EndDate、BnProject_ID;对应CMP为BnProjectBean,但在程序里找不到有要插入最后一个字段BnProject_ID的代码,但操作完毕后BnProject_ID的值是有的,怎么回事?
相关的数据库操作代码如下:
public void setBnProjectValue( hero.interfaces.BnProjectValue valueHolder )
{
try
{
setInstanceNs( valueHolder.getInstanceNs() );
setParent( valueHolder.getParent() );
setName( valueHolder.getName() );
setStatus( valueHolder.getStatus() );
setType( valueHolder.getType() );
setCreator( valueHolder.getCreator() );
setState( valueHolder.getState() );
setCreationDate( valueHolder.getCreationDate() );
setEndDate( valueHolder.getEndDate() );
...
}
...
}
public BnProjectPK ejbCreate(String pName, String creator)
throws InvalidValueException, EJBException, CreateException {
log.debug("ejbCreate: pName=" + pName + " creator=" + creator);
BnProjectLocalHome projecthome;
BnProjectLocal project;
try {
projecthome = hero.interfaces.BnProjectUtil.getLocalHome();
} catch (javax.naming.NamingException be) {
throw new CreateException(be.getMessage());
}
try {
project = projecthome.findByName(pName);
throw new CreateException("BnProject " + pName + " already exist");
} catch (FinderException fe) {
try {
BServiceLocator serviceLocator = BServiceLocator.getInstance();
this.setId(BserviceLocator.generateUniqueId(BServiceLocator.PROJECT));
} catch (BServiceException e) {
throw new CreateException(e.getMessage());
}
// Each title must have a unique id to identify itself within the DB
//this.setId(generateUniqueId());
this.setName(pName);
this.setCreator(creator);
}
// This is only possible in CMPs. Otherwise return a valid PK.
return null;
}