select object(jsb) from Jsb as jsb,Ygjbxx where jsb.ygxxbh=Ygjbxx.ygxxbh and Ygjbxx.xm = ?1 and jsb.jszt = ?2
这么写好象是不对哦!
根据以上ql我的理解是表Jsb与表Ygjbxx由外建关联,而且搂住需要三个约束条件:
1)Ygjbxx.xm = ?1
2)jsb.jszt = ?2
3)jsb.ygxxbh=Ygjbxx.ygxxbh
由于是两个表,肯定不能再一个cmp-ejb中同时访问.
基于以上的理解,我的解决方案是:
1,写2个ejb。one for jsb and one for Ygjbxx。两个ejb之间用ygxxbh字段写relationship。在jsb中调用Ygjbxx。
2,ql可以这么写:
SELECT OBJECT(jsb) FROM jsb as jsb, IN (jsb.relation) AS Ygjb
WHERE jsb.jszt = ?1 and Ygjb.xm = ?2
至于第三个条件,个人认为无需判断,因为两个表就是通过ygxxbh字段建立关联的,IN (jsb.relation) AS Ygjb 语句就已经找到相应的Ygjb纪录了。
3,数据库建立的时候外键关系别搞错!
应该就这样了,还有注意relationship的xml配置。
祝你好运!
Never give up!