cmr调用错误:A CMR collection may only be used within the transction in which it was created

sanyo_rider 2004-11-14 03:10:22
1、两个实体BEAN CYDMDB DHBDDXGDB,关系是一对多。
/////////////////////////////////////////////////////////////
2、在sessionbean中调用函数:getResult() 代码如下:
Context ctx = new InitialContext();
Object objRef = ctx.lookup("Cydmdb");
home = (CydmdbHome) javax.rmi.PortableRemoteObject.narrow(objRef,
CydmdbHome.class);

testbean=home.findByPrimaryKey("Y700");//find
c=testbean.getDhbDdxgdb();
//返回一个collection,这个collection里有多个dhbddxgdb对象
return c;//本函数返回。
/////////////////////////////////////////////////////////////
3、在servlet里边的调用如下:
Context ctx = new InitialContext();
Object objRef = ctx.lookup("getcmp7");
home = (getcmp7Home) javax.rmi.PortableRemoteObject.narrow(objRef, getcmp7Home.class);
getcmp7=home.create(); //create local

Collection c=rybm.getResult();//////////////////问题就出在这里
out.println(c.size());
/////////////////////////////////////////////////////////////
4、错误提示:
A CMR collection may only be used within the transction in which it was created
/////////////////////////////////////////////////////////////
5、为什么出现这样的错误,应该如何解决?
谢谢大家
...全文
83 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sgdb 2004-11-15
  • 打赏
  • 举报
回复
你的rybm是什么?sessionbean么?
从你的代码看rybm似乎是cmp;在servlet里你要用sessionbean来处理;

tangboyong 2004-11-15
  • 打赏
  • 举报
回复
不能在servlet里用collection了,你必须在sessionbean里边把collection包装后再返回到servlet里边就可以了。
sanyo_rider 2004-11-15
  • 打赏
  • 举报
回复
怎么没有朋友回答我的问题啊?顶一下也可以啊
是问题太难了吗?
pbMaster 2004-11-15
  • 打赏
  • 举报
回复
我在你的另一个帖子里回答了,你去看看吧。估计是可以解决的。
sanyo_rider 2004-11-14
  • 打赏
  • 举报
回复
我也有同样的问题

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧