怎么引用Cmp中的finder方法啊?
每个实体bean本身有一个findbyprimarykey的finder方法,现在我要做web登录程序,所以就得有查询了,基本架构是jsp调用有状态sessionbean,有状态sessionbean调用实体bean,这里只是要进行用户名和密码的验证,所以我在实体bean上添加了一个finder方法,其ejb-ql如下:SELECT OBJECT(one) AS one FROM User WHERE one.id=?1 AND one.password=?2,(这里的id和password是数据库中的用户名和密码字段,均为字符串型)?1和?2当然对应着本方法传过来的两个相应的参数了,另外我设置的返回类型是Collection的就编译不了,(不是实体bean编译不了,是sessionbean调用那个方法时的错误),于是我就设置成返回bean类型的了,这里因为实体bean名为User,所以就返回User类型了。可是我调用时明明数据库有完全一样的值的时候却没有返回相应的值,我想应该是返回类型或者ejb-ql语句本身的问题了,但我又不知道怎么找出毛病,编译通过,就是没有返回结果,总是返回null,请教高手帮忙啊,谢了! 问题点数:50、回复次数:6Top
1 楼dragonlw(潜龙在渊)回复于 2004-05-04 18:45:51 得分 0
正在学习,帮你UPTop
2 楼graygu(graygu)回复于 2004-05-04 20:44:06 得分 0
为什么返回Collection就编译不了呢?把错误信息贴出来吧。
Top
3 楼redex(cc)回复于 2004-05-05 03:53:46 得分 20
实体Bean的findbyprimarykey方法只能返回一个实体Bean的接口对象,
不能返回Collection,因为此方法是按照对象的唯一id来查找对象的,
不会返回一个集合,只能返回一个对象。Top
4 楼FlyPig1983(飞天猪)回复于 2004-05-05 09:48:03 得分 30
可以设置成Collection 出现错误的情况可能是你没有引入java.util.*这个包
返回的是一个远程接口的集,所以在调用的时候就要按照远程接口的方法和属性来调用。
还有finder方法只需在本地接口中写就够了 (我知道的就这么多 :))Top
5 楼panda00(⊙熊猫⊙)回复于 2004-05-05 09:52:52 得分 0
好啊,我会按照你们说的尝试一下了啦,谢谢各位的帮助,有问题我会再麻烦你们的了,大家共同学习嘛。
to redex(cc):我说的不是findbyprimarykey的编译不了,是后者,不过谢谢你。Top
6 楼panda00(⊙熊猫⊙)回复于 2004-05-07 06:38:01 得分 0
我试过了,我本来就引入了java.util.*这个包,请问返回远程接口集后该作什么动作啊?比如说返回的结果这样写可不可以:?
Collection result=User.find_login_check(id,password);其中User是实体bean,find_login_check就是我定义的find方法,可是查询总是结果为空,但数据库中是确实有对应的值的,这是怎么回事啊?Top




