回 帖 发 新 帖 刷新版面

主题:cmp ejb不按主键查询如何实现

新建一个名字为User的cmp ejb后,数据表中有三个字段user_id,name,password,开始测试时插入,修改,删除,查询都没有问题,后来我想实现通过姓名查询就在UserHome.java中插入
public user.ejb.User findByName(String name)
      throws javax.ejb.FinderException,java.rmi.RemoteException;
在ejb-jar.xml中<entity id="ContainerManagedEntity_User">和</entity>之间插入
         <query>
          <query-method>
            <method-name>findByName</method-name>
            <method-params>
              <method-param>java.lang.String</method-param>
             </method-params>
            </query-method>
            <ejb-ql>
             <![CDATA[SELECT OBJECT(a) FROM UserSCHEMA as a WHERE name=?1]]>
            </ejb-ql>
          </query>
可是出错了,错误内容是User not bound (User是ejb-name)
这是为什么,该怎么解决

回复列表 (共5个回复)

沙发

我用的工具是eclipse3.2+lomboz+jboss

板凳

再问下,eclipse3.2中要在ejb中添加方法是不是只能通过手工编写代码添加的

3 楼

不知道啊,我的意思是象MFC一样可以通过右键什么的添加函数或者变量

4 楼

在控制台中发现如下信息:
ERROR [User#findByName] Encountered "name" at line 1, column 45.
Was expecting one of:
    "NOT" ...
    "(" ...
    <COLLECTION_VALUED_PATH> ...
    <STRING_VALUED_PATH> ...
    "CONCAT" ...
    "SUBSTRING" ...
    <BOOLEAN_VALUED_PATH> ...
    <DATETIME_VALUED_PATH> ...
    <ENTITY_VALUED_PATH> ...
    <IDENTIFICATION_VARIABLE> ...
    <NUMERIC_VALUED_PATH> ...
    "LENGTH" ...
    "LOCATE" ...
    "ABS" ...
    "SQRT" ...
    "MOD" ...
    "+" ...
    "-" ...
    <INTEGER_LITERAL> ...
    <FLOATING_POINT_LITERAL> ...
    <NUMERIC_VALUED_PARAMETER> ...
不知道什么意思,大家帮忙

5 楼

今天在网上看到自己以前发的帖子还是没人回就自己回吧,那个应该用xdoclet实现

我来回复

您尚未登录,请登录后再回复。点此登录或注册