请教cmp关联的问题,1:1,1:n多关系

03-09-09 jayqian
我用jbuilder9开发,从datasource生成两个cmp,person个人信息,work工作经历

person:

id

name

englishname

work:

pid

compony

salary

pid对应person的id,是1:n关系

自动生成后,在person建了一个relation,key也指定好了,现在find没问题,

我想请教该怎么create,我们是参考petstore做的,基本上是在person的create里只setId,在postCreate里该怎么做呢,高手指教,请详细一点谢谢

jayqian
2003-09-09 15:09
补充一下:

1.对表结构设计上不用讨论,我只是举个列子.

2.work自己带create(pid) setPid(pid)的不用说了,能实现.

但我在petstore里看到是没有的,就是说create()是空的

在person的postcreate里先create() work然后setWorks(),但是没有主建的work create()就出错啊,不知道petstore里是怎么实现的

banq
2003-09-09 16:15
work当然需要 create(主键) 这样来创建,

语句应该这样:

WorkLocal workLocal = workHome.create(String pid);

personLocal.getWorks.add(workLocal);

最后一句是设立一对多关系的。

如果是一对一关系,最后一句应该是:

personLocal.setWork(workLocal);

jayqian
2003-09-09 17:23
谢谢,您说的add我马上试试

请看一下petstore的custom ejb 他里面的address等都是没有主建的create

如果在employee cmp的postCreate用

work = workhome.create(pid);

setwork(work);

会出错

而且我想既然create的work有pid,就已经和employee关联上了,根本不用再

setwork,我试过,实际可行,但为什么还要set呢,petstore里create的时候确实没有带主建,而是靠set关联上的,我那么理解的

研究过petstore的都来讲讲啊

猜你喜欢