有对CMP relationship熟悉的朋友请进!

03-11-11 mengk
自从EJB2.0推出以来,的确给程序员带来了福音,无论是性能还是功能上都有较大提高。对我来说,最大的好处是,基本上可以不用自己写BMP了,完全可以利用relationship进行多表操作,这的确大大提高了开发的效率,当然好处还有很多我在这就不一一列举了。(不好意思,小弟丢了一段时间没搞JAVA,对于EJB2.0还不是很熟悉,还请哪路高手赐教!)

1.首先我想问一个问题,如果在两个一一对应的Entity Bean之间创建relationship,并且我要求关系是单向的,那么应该在哪个Bean上添加relationship才是对的呢?

比如说:

我这里有两个Entity Bean,他们分别代表着道路的节点(RoadNode)和城市(City)。

道路节点有这样几个属性:roadNodeId,code,name,cityId,description

城市的属性如下:cityId,code,name,postal,....

我在Application做的客户端,想通过findAllRoadNodes得到城市的name,并且在JTable上显示。我现在想问的是在道路节点上添加relationship呢,还是在城市上添加relationship!

呵呵,可能有很多人和我一样,为了得到城市的name而在RoadNode Entity Bean上添加relationship,可是这样做是错的,在部署的时候报错!不信自己可以试试。我认为relationship应该在将cityId作为主键的Bean上添加,但是为了能够让客户端访问RoadNode Bean时就可以通过relatioship得到cityId对应的City name,必须将relationship改为双向的。

我于是这样做了,但是错误发生了,这次是才程序执行的时候发生的。我并没有急于将name显示在JTable里,我想先看看,当我添加了relationship后,会不会对我原来已经正常的程序有没有影响。结果,findAllRoadNodes到是对的,可findAllCitys就错了,返回的错误信息居然是“java.sql.Exception:无效的列名”,我晕!

不知哪位仁兄碰到过我这样的情况,是否在此时遇到过这样的错误!

    

猜你喜欢