开发工具jbuilderX,服务器weblogic 8.1,数据库是interbase

解决方案 »

  1.   

    使用CMR,可以通过“在部署描述符文件中描述+在代码中写声明(不写实现)”
    的方式管理表关系.
      

  2.   

    这些声明是不是会出现在ejb的localremote接口中?
    那我建立一个ejb的实例时那个关联字段我该怎么处理,用自己手工设置值?那跟不设关联也没有什么区别啊。
    能不能说一下设置了关系后有什么作用啊?
      

  3.   

    是这样的,我举个例子吧:1:N=========================================
        CompanyPK   |   Name                |
    =========================================
        12345       |The Middleware Company |
    ==============================================================================================
        EmployeePK  |   Name    |   Sex |   Company     |
    =====================================================
        20202       |   Ed      |   M   |   12345       |
        20203       |   Floyd   |   M   |   12345       |
    =====================================================
    用BMP实现1:N关系public class CompanyBean implements EntityBean
    {
        private String companyPK;
        private String companyName;
        private Vector employees;
        
        public Collection getEmployees()
        {
            return this.employees;
        }
        
        public void setEmployees(Collection e)
        {
            this.employees = (Vector) e;
        }
        
        public void ejbLoad()
        {
            // 1. 利用SQL选择Company
            // 2. JNDI查找EmployeeHome
            // 3. 调用EmployeeHome.findByCompany(companyPk)
        }
        
        public void ejbStore()
        {
            // 利用SQL更新compnay
        }
    }用CMP实现1:N关系public abstract CompanyBean implements EntityBean
    {
        public abstract Collection getEmployees();
        public abstract void setEmployees(Collection e);
        
        public void ejbLoad();
        public void ejbStore();
    }ejb-jar.xml
    <ejb-jar>
        <enterprise-beans>
        ....
        </enterprise-beans>
        
        <relationships>
            <ejb-relation>
                <ejb-relation-name>Company-Employees</ejb-relation-name>
                <ejb-relation-role>
                    <ejb-relation-role-name>
                        Company-Employs-Employees
                    </ejb-relation-role-name>
                    
                    <multiplicity>One</multiplicity>
                    
                    <relationship-role-source>
                        <ejb-name>Company</ejb-name>
                    </relationship-role-source>
                    
                    <cmr-field>
                        <cmr-field-name>employees</cmr-field-name>
                        <cmr-field-type>java.util.Collections</cmr-field-type>
                    </cmr-field>
                </ejb-relation-role>
                
                <ejb-relation-role>
                    <ejb-relation-role-name>
                        Employees-WorkAt-Company
                    </ejb-relation-roel-name>
                    
                    <multiplicity>Many</multiplicity>
                    
                    <relation-role-source>
                        <ejb-name>Employee</ejb-name>
                    </relation-role-source>
                </ejb-relation-role>
            </ejb-relation>
        </relationships>    
    </ejb-jar>在CMP实现中,不用手动进行设置,完全有容器来做.