jbuilder+weblogic+oracle开发CMR,一对多,一对一关系时候,Error while reading 'META-INF/weblogic-cmp-rdbms-jar.xml'
数据库DDL如下:
--客户表
CREATE TABLE "CUSTOMER" ( -- a customer entry
"CUSTOMER_NUMBER" NUMBER(10) NOT NULL -- 客户编号
, "NAME" VARCHAR2(80) NOT NULL -- 客户名称
, "DESCRIPTION" VARCHAR2(255) -- 描述信息
, "B_GROUP" NUMBER(1) DEFAULT 0 -- 是否集体
, "STATUS" VARCHAR2(10) NOT NULL -- 状态: ACTIVE, FROZEN
, "CONTACT_ID" NUMBER(10) -- 联系信息
, CONSTRAINT "CUSTOMER_PK" PRIMARY KEY("CUSTOMER_NUMBER")
, CONSTRAINT "CUSTOMER_FK_CONTACT" FOREIGN KEY("CONTACT_ID") REFERENCES "CONTACT_INFO"("ID")
);
//联系信息表
CREATE TABLE "CONTACT_INFO" ( -- general purpose contact information
"ID" NUMBER(10) NOT NULL -- primary key
, "NAME" VARCHAR2(80) NOT NULL -- 名称
, "LINE1" VARCHAR2(80)
, "LINE2" VARCHAR2(80)
, "CITY" VARCHAR2(40)
, "STATE" VARCHAR2(40)
, "ZIP" VARCHAR2(20)
, "WORK_PHONE" VARCHAR2(20)
, "HOME_PHONE" VARCHAR2(20)
, "MOBILE_PHONE" VARCHAR2(20)
, "EMAIL" VARCHAR2(100)
, "WEB_ADDRESS" VARCHAR2(100)
, "BANK" VARCHAR2(100) -- 银行
, "ACCOUNT" NUMBER(22) -- 帐号
, "SECRETARY_ID" NUMBER(10) -- 秘书号
, CONSTRAINT "ADDRESS_PK" PRIMARY KEY ("ID")
, CONSTRAINT "ADDRESS_FK_SECRETARY" FOREIGN KEY
);
则JBuilder9中用EJB Desiger设置关系后,设置一对一或者是一对多的关系时候,总是weblogic-cmp-rdbms-jar.xml报错,修改weblogic-cmp-rdbms-jar.xml, 还是抱错
修改后的weblogic-cmp-rdbms-jar.xml如下:
在weblogic-cmp-rdbms-jar.xml配置部分代码如下:
<weblogic-rdbms-relation>
<relation-name>customer-contactInfo</relation-name>
<weblogic-relationship-role>
<relationship-role-name>ContactInfoRelationshipRole</relationship-role-name>
<relationship-role-map>
<foreign-key-table>CUSTOMER</foreign-key-table>
<primary-key-table>CONTACT_INFO</primary-key-table>
<column-map>
<foreign-key-column>CONTACT_ID</foreign-key-column>
<key-column>ID</key-column>
</column-map>
</relationship-role-map>
</weblogic-relationship-role>
</weblogic-rdbms-relation>
CustomerBean 和ContactInfoBean如果为一对一关系时报错如下:
"testPurchase.ejbgrpx": C:\jdk1.3.1_09\bin\javaw -classpath "C:\bea\weblogic700\server\lib\weblogic.jar;C:\bea\weblogic700\server\lib\webservices.jar;C:\ejbforJB\thirdparty\log4j\log4j-core.jar;C:\ejbforJB\thirdparty\log4j\log4j.jar;C:\oracle\ora92\jdbc\lib\classes12.jar;C:\JBuilder90\lib\ext\wasp46\lib\wasp.jar;C:\JBuilder90\lib\ext\wasp46\lib\core_bc.jar;" weblogic.ejbc -keepgenerated -compiler C:/jdk1.3.1_09/bin/javac C:/restaurantForEntity/operation/testEntity/testPurchase.jar.jar C:/restaurantForEntity/operation/testEntity/testPurchase.jar
"testPurchase.ejbgrpx": ERROR: Error from ejbc: Error while reading 'META-INF/weblogic-cmp-rdbms-jar.xml'. The error was:
"testPurchase.ejbgrpx":
"testPurchase.ejbgrpx": In relationship 'customer-contactInfo', role 'ContactInfoRelationshipRole', a weblogic-relationship-role element contains the wrong number of column mappings. A single column mapping must be given for each primary key column in the bean referenced by the mapping.
"testPurchase.ejbgrpx": ERROR: ejbc found errors