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

两个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的一行。

如果把CMP,U1,U2改为远程的(REMOTE)就没有问题,WHY,请有识之士,赐教!

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