楼上的做法完全是个错误
我不知道是你们设计问题还是别的什么问题使用EJB最忌讳两个容器都使用,这样会大大降低效率。既然你用到了CMP,那就一直使用这个。
牵涉到复杂的查询。建议你们要在上层做个类似sessionBean来出来这个事情。三年前我们正规的调用是这么的过程:
delegate-->facade(这里的设计一定要做好,把模块业务封装在一起)-->sessionBean(EntityBean)-->DB
关键的问题还是在你的sessionBean中的运用,所以当时我们采用了VO来做数据封装和上层,底层来打交道
我不知道是你们设计问题还是别的什么问题使用EJB最忌讳两个容器都使用,这样会大大降低效率。既然你用到了CMP,那就一直使用这个。
牵涉到复杂的查询。建议你们要在上层做个类似sessionBean来出来这个事情。三年前我们正规的调用是这么的过程:
delegate-->facade(这里的设计一定要做好,把模块业务封装在一起)-->sessionBean(EntityBean)-->DB
关键的问题还是在你的sessionBean中的运用,所以当时我们采用了VO来做数据封装和上层,底层来打交道
我会一直用CMP的但是他
怎么批量检索数据呢
然后显示
麻烦赐教
如果是的话,这个不是什么很难的事情
想合并集合也是一样。
我只是凭影象说下:
通过PK来得到类,这个甚至可以得到Collection
得到后,你要通过:
List listNew=new ArrayList();
for(Iterator it=list.Iterator();it.hasNext();){
ClassVO vo=new ClassVO();
vo.setXXX(...)
listNew.add(vo);
}
return new listNew;
以上就是一个简单的实现,至于上面的list就是你传过来的集合对象,这个list可以通过jdbc来得到:ResultSet.
上面的方法如果写的好,还可以分拆成下面的:public Collection getBigVO(){
List listBig=new ArrayList();
while(rs.next()){
listBig.add(getColls(rs));
}
return listBig;
}private ClassVO getColls(ResultSet rs) throws ...{
ClassVO vo=new ClassVO();
vo.setXXX(rs.getString(1));
....
}
注:以上的ClassVO 就是你自己的VO
既然得到了这个list,我想其他问题应该不难吧!
for(Iterator it=list.Iterator();it.hasNext();){
ClassVO vo=new ClassVO();
vo.setXXX(...)
listNew.add(vo);
}
==》
for(Iterator it=list.Iterator();it.hasNext();){
ClassVO vo=(ClassVO)it.next();
vo.setXXX(...)
listNew.add(vo);
}
太感谢Top
yeshucheng了
问题搞定 我在这里老是出现类型转换问题 是JB+weblogic的 麻烦再给看看
Context ctx=new InitialContext();
//Context ctx=getlnitialContext();
UserHome home=(UserHome)ctx.lookup("User");
home.create(UserName,UserPwd,PenName,UserSex,UserInfo,UserEmail);
java.lang.ClassCastException
at newsoperation.UserInfoBean.addUser(UserInfoBean.java:32)
at newsoperation.UserInfoBean_1es1gu_EOImpl.addUser(UserInfoBean_1es1gu_
EOImpl.java:46)
at newsoperation.UserInfoBean_1es1gu_EOImpl_WLSkel.invoke(Unknown Source
)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:466)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:108)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:409)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:353)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
144)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:404)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
2年以上J2ee java工作经验以上的