双向关系的LOCALCMP中的插入子表数据的问题

05-10-04 nuke7001
两个localcmp,u1,u2,和一个remotesessionbean及测试类:

public interface U1

extends EJBLocalObject

{

public String getId();

public void setName(String name);

public String getName();

public void setU2(Collection u2);

public Collection getU2();

}

public interface U2

extends EJBLocalObject

{

public String getId();

public void setId();

public void setCount(Integer count);

public Integer getCount();

public void setU1(U1 u1);

public U1 getU1();

}

在配置文件中U2的外键为u1_id,通过U2的实列u2,新增一行记录:

u2.setId(1);u2.setCount(10);u2.setU1(u1)("u1是CMP:U1的实列通过HOME的findByPrimaryKey()方法查询返回");

正确执行,但在数据库中,U2表的外键u1_id为NULL;????

u2.setU1怎么没有起作用?如果是配置问题的话,那么

与之相对应的u2.getU1却又能用!

若数据库中U2表的外键u1_id有值于表U1相对应,取出U2的一个实列u2,

那么u2.getU1(),就能正确返回表U1的一行。

nuke7001
2005-10-04 16:51
如果把CMP,U1,U2改为远程的(REMOTE)就没有问题,WHY,请有识之士,赐教!

awardsure
2005-10-07 11:44
关键问题解决了就可以了 ,如果让我设计 我不会把U1做为参数 我把VO(DTO)做为参数, 那如果真是这样,那就是你没有遵循J2EE设计规范落。 猜测而已,

猜你喜欢