百思不得其解: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,請指正!

...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用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>
一、项目简介 本项目(HF24075 SDFeatureRivertraining)是一套以多路 PWM 多彩 LED 灯光控制为核心的固件方案,基于 PADAUK PMS 系列单片机。方案对蓝、青、粉等多色 LED 进行独立 PWM 调光,实现呼吸、渐变、流水等细腻灯光效果,并支持按键切换与传感器交互。其 PWM 调光结构清晰,是学习单片机 PWM、色彩混合与灯光算法的理想范例。 核心应用场景: 1. 氛围灯 / 流水灯产品开发 2. PWM 调光与色彩混合学习 3. 电子类课程设计 / 毕业设计 4. 灯光艺术与 DIY 项目 适配使用场景:学习练手、毕业设计、课程设计、创业售卖、实操实训,突出实用性与可落地性。 二、硬件核心配置 · 主控芯片:PADAUK(应广科技)PMS 系列 8 位 OTP 单片机 · 外接外设: - 多色 LED 灯组(蓝 / 青 / 粉等多路独立 PWM) - 轻触按键(模式切换) - 传感器(交互触发) · 操控设备: - 机身实体按键操控 三、核心功能介绍 1. 多路独立 PWM 调光:蓝、青、粉等 LED 各自独立占空比控制,实现精准亮度; 2. 呼吸 / 渐变 / 流水效果:通过 PWM 变化曲线营造丰富灯光律动; 3. 按键切换模式:轻触在多种灯效间循环切换; 4. 传感器交互:外部传感信号触发或联动灯光变化; 5. 低功耗设计:闲置进入低功耗,按需唤醒。 6. 参数可配:亮灭周期、渐变速度等可调,便于定制。 四、项目优势与亮点 · 灯光细腻:多路独立 PWM,效果远胜简单开关灯。 · 算法清晰:呼吸 / 渐变实现简洁,易于理解与移植。 · 扩展性强:可轻松增加颜色与模式,适配各类灯饰。 ·

67,535

社区成员

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

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