百思不得其解:CMR中兩個關聯的Entity Bean中在哪裡指定具體的關聯字段呢?

blstar 2003-01-17 10:02:45
近日學習EJB中,看到CMP部分,實現關聯的時候,ejb-jar.xml如下(JBuilder生成):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<entity>
<display-name>Product</display-name>
<ejb-name>Product</ejb-name>
<local-home>crm.ProductHome</local-home>
<local>crm.Product</local>
<ejb-class>crm.ProductBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>crm.ProductPK</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Product</abstract-schema-name>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
</cmp-field>
<cmp-field>
<field-name>defaultPrice</field-name>
</cmp-field>
<cmp-field>
<field-name>description</field-name>
</cmp-field>
</entity>
<entity>
<display-name>Orders</display-name>
<ejb-name>Orders</ejb-name>
<local-home>crm.OrdersHome</local-home>
<local>crm.Orders</local>
<ejb-class>crm.OrdersBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>crm.OrdersPK</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Orders</abstract-schema-name>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>code</field-name>
</cmp-field>
<cmp-field>
<field-name>date</field-name>
</cmp-field>
<cmp-field>
<field-name>description</field-name>
</cmp-field>
</entity>
<entity>
<display-name>OrderItem</display-name>
<ejb-name>OrderItem</ejb-name>
<local-home>crm.OrderItemHome</local-home>
<local>crm.OrderItem</local>
<ejb-class>crm.OrderItemBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>crm.OrderItemPK</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>OrderItem</abstract-schema-name>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>orderId</field-name>
</cmp-field>
<cmp-field>
<field-name>productId</field-name>
</cmp-field>
<cmp-field>
<field-name>quantity</field-name>
</cmp-field>
<cmp-field>
<field-name>price</field-name>
</cmp-field>
</entity>
</enterprise-beans>
<relationships>
<ejb-relation>
<ejb-relation-name>orders-orderItem</ejb-relation-name>
<ejb-relationship-role>
<description>orders</description>
<ejb-relationship-role-name>OrdersRelationshipRole</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<description>orders</description>
<ejb-name>Orders</ejb-name>
</relationship-role-source>
<cmr-field>
<description>orderItem</description>
<cmr-field-name>items</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<description>orderItem</description>
<ejb-relationship-role-name>OrderItemRelationshipRole</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<cascade-delete />
<relationship-role-source>
<description>orderItem</description>
<ejb-name>OrderItem</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
</relationships>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>Product</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>Orders</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>OrderItem</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>

-----------
其中:
<cmr-field>
<description>orderItem</description>
<cmr-field-name>items</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
我的認為是在Order EntityBean中通過items字段得到相關的orderItem的集合。
但是我的困惑是:
我的Order表中有一個id為主鍵
OrderItem中有一個id為主鍵,還有一個orderid的外鍵指向Order的id.
但是在哪兒指定OrderItem中的orderid與Order中的id之間的關系呢?ejb container在具體實現的時候怎麼才能明白它們的關系呢?
在ejb-jar.xml中可以看出來嗎?還是另有機關?

剛剛學習EJB,請指正!

...全文
55 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
blstar 2003-01-18
  • 打赏
  • 举报
回复
哦,知了。。每種服務器都有自己的數據庫具體映射文件。..謝了!學藝不精。。
ddvboy 2003-01-17
  • 打赏
  • 举报
回复
think
Billy_Chen28 2003-01-17
  • 打赏
  • 举报
回复
关注
zydgj 2003-01-17
  • 打赏
  • 举报
回复
关联关系描述:

1. ejb-jar.xml文件: <relationships>项 <ejb-relation>

2. 如果用的是weblogic: weblogic-cmp-rdbms-jar.xml文件
<weblogic-rdbms-relation>

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧