写EJBQL啊
SELECT OBJECT(o) FROM XXX
定义返回Collection,然后你就可以一个一个取出来拉。

解决方案 »

  1.   

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
    <ejb-jar>
        <enterprise-beans>
            <entity>
                <ejb-name>Dzy</ejb-name>
                <home>untitled2.DzyHome</home>
                <remote>untitled2.Dzy</remote>
                <ejb-class>untitled2.DzyBean</ejb-class>
                <persistence-type>Container</persistence-type>
                <prim-key-class>java.lang.String</prim-key-class>
                <reentrant>False</reentrant>
                <cmp-field>
                    <field-name>a</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>b</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>c</field-name>
                </cmp-field>
                <cmp-field>
                    <field-name>d</field-name>
                </cmp-field>
                <primkey-field>a</primkey-field>
                <resource-ref>
                    <res-ref-name>jdbc/oracle</res-ref-name>
                    <res-type>javax.sql.DataSource</res-type>
                    <res-auth>Container</res-auth>
                </resource-ref>
            </entity>
        </enterprise-beans>
        <assembly-descriptor>
            <container-transaction>
                <method>
                    <ejb-name>Dzy</ejb-name>
                    <method-name>*</method-name>
                </method>
                <trans-attribute>Required</trans-attribute>
            </container-transaction>
        </assembly-descriptor>
    </ejb-jar>
    加到那个位置呢?
      

  2.   

    cmp很简单的写个ejb ql就可以了
    在jbuilder7中先new一个 ejb module,再把数据库中的表导成cmp的ejb,然后在这个ejb中填加finder方法,在query输入框中写入:SELECT OBJECT(c) FROM Majorinfo AS c  类 似的查询语句。
      

  3.   

    如果是在BMP中,则直接写JDBC代码:
    public Collection ejbFindAll() throws FinderException{
            PreparedStatement pstmt = null;
            Connection conn = null;
            ResultSet rs = null;
            ArrayList alist = new ArrayList();
            try{
                conn = getConnection();
                pstmt = conn.prepareStatement("select BatchId from CardBatch");
                rs = pstmt.executeQuery();
                while (rs.next()) {
                    long BatchId = rs.getLong(1);
                    alist.add(new CardBatchPK(BatchId));
                }
                return alist;
            }catch (Exception e) {
                throw new FinderException(e.toString());
                //throw new CardException("得到所有的批次信息出现错误!",CardException.CreateCardException,e);
            }finally {
                try { if (rs != null) rs.close(); 
                }catch (Exception e) {}
                try { if (pstmt != null) pstmt.close(); 
                }catch (Exception e) {}
                try { if (conn != null) conn.close(); 
                }catch (Exception e) {}
            }
        }