QL语句对吗?
看你的xml-jar.xml里,status对应的类型是什么 ?
如果是Object,改为String ...

解决方案 »

  1.   

    是不是应该这样:status='1 '
      

  2.   

    我的QL语句:select object(c) from CarInfo AS c where c.status = ?1
    CarInfo是我的实体bean名称
    部署文件片段如下:
     <entity>
                <display-name>CarInfo</display-name>
                <ejb-name>CarInfo</ejb-name>
                <local-home>carmanager.CarInfoHome</local-home>
                <local>carmanager.CarInfo</local>
                <ejb-class>carmanager.CarInfoBean</ejb-class>
                <persistence-type>Container</persistence-type>
                <prim-key-class>java.lang.String</prim-key-class>
                <reentrant>False</reentrant>
                <cmp-version>2.x</cmp-version>
                <abstract-schema-name>CarInfo</abstract-schema-name>
                <cmp-field>
                    <field-name>color</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>status</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>notes</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>carID</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>unitName</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>fType</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>engineNO</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>frameNO</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>lDate</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>licenceNO</field-name>
                </cmp-field>
                <primkey-field>carID</primkey-field>
                <query>
                    <query-method>
                        <method-name>findByStatus</method-name>
                        <method-params>
                            <method-param>java.lang.String</method-param>
                        </method-params>
                    </query-method>
                    <ejb-ql>select object(c) from CarInfo AS c where c.status = ?1</ejb-ql>
                </query>
                <query>
                    <query-method>
                        <method-name>findAll</method-name>
                        <method-params />
                    </query-method>
                    <ejb-ql>select object(o) from CarInfo o</ejb-ql>
                </query>
            </entity>
    为什么会找不到记录呢?
      

  3.   

    QL看上去没有错误。
    要确认以下几点:
    测试客户端的程序中的接受类型是否与QL返回相容
    如果QL返回的是Collection类型,注意正确转换
      

  4.   

    给findByStatus方法传参数时,假设查找Status='1'的对象,
    则传参时用String类型,如...findByStatus("1");
      

  5.   

    我传参时用String类型了,就是出不来结果
      

  6.   

    你的数据库中该字段定义了char(2),是不是有怪字符在数据库中啊?
      

  7.   

    仔细检查客户端调用findByStatus(...)方法的地方,注意每一个细节。
    或者你把那段代码贴上来,出错信息是什么?
      

  8.   

    问题解决了。原来在Oracle中定义Char(x)类型时如果插入的数据不足x位,会在后面加空格,结果用CMP实体bean查不出.