实体之间的关联是通过在xml文件部署描述的!<cmr-field>

解决方案 »

  1.   

    实体BEAN与BEAN之间关联并不代表他们所表示的物理表必须要有外键关联,因为他可以是逻辑上的关联,在EJB中通过编程以及XML配置文件关联。
      

  2.   

    还是不太明白,如果是逻辑上的关联而没有外键关联,那EJB容器如何维持表之间的关系,容器重启后难道仍能维持关系?
    XML我理解只是说明两个表之间存在关系,但靠什么字段来维护关系呢?
    请大家解释得更清楚一些。
      

  3.   

    bmp通过jndi来找到相应的ejb
    cmp通过部署文件描述信息可以关联bean之间的调用关系。
    你看看cmp类型的ejb部署文件就知道了
      

  4.   

    bmp通过jndi来找到相应的ejb
    cmp通过部署文件描述信息可以关联bean之间的调用关系。
    你看看cmp类型的ejb部署文件就知道了
      

  5.   

    例:TeamEJB 
    The TeamEJB entity bean has a relationship field named players, a Collection that represents the players that belong to the team. The access methods for the players relationship field are as follows: public abstract Collection getPlayers();
    public abstract void setPlayers(Collection players);myRoster.addPlayer("P1", "T1");public void addPlayer(String playerId, String teamId) { 
        try {
            LocalTeam team = teamHome.findByPrimaryKey(teamId);
            LocalPlayer player =
                playerHome.findByPrimaryKey(playerId);
            team.addPlayer(player);
        } catch (Exception ex) {
            throw new EJBException(ex.getMessage());
        }
    }public void addPlayer(LocalPlayer player) {
        try {
            Collection players = getPlayers();
            players.add(player);
        } catch (Exception ex) {
            throw new EJBException(ex.getMessage());
        }
    }
    关于cmp部署我知道,但总认为应该有一个物理的表来维持这种动态的对应关系。否则数据库怎么知道一个Team 拥有 哪些最新的 Player????
      

  6.   

    to hellocz(cz) :其实你自己的理解是对的,的确存在专门维护实体BEAN关系的表格存在,只是在以前要维持关系的话,是由我们自己做的。现在,由EJB容器来帮我们完成这些工作。不过1:1的关系也不需要另外的表,比如雇员和雇员地址是1:1的关系,那么我们只需要对容器在部署时指定这样的关联。容器在生成表格的时候,会自动在雇员对应的表格后面添加一个字段addresskey,它记录了雇员地址(addressejb)的主键。如果是1:N的关系,是在N一方存储这样的外键,如果是N:N,就需要单独的关系表格来维持了,同样这些工作都是容器自动完成的
      

  7.   

    我明白xioyoo的意思。
    但有一个问题:
    我在JBuilder中是先Import 一个自己已经建立完成的两张表单,然后Create a EntityBean。这样通过JBuilder deploy 时(weblogic),会在数据库中自动建立单独的关系表格吗?