请教jboss 4.0 编写CMP entitybean 中的数据库关系映射问题
各位大侠,经典的Order-Shipment关系是一个one-to-one问题,我是如此配置ejb-jar.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar id="ejb-jar_ID" version="2.1"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
<enterprise-beans>
<entity>
<ejb-name>cmporder_ejb</ejb-name>
<home>my.ordershipment_cmp.CMPOrderHome</home>
<remote>my.ordershipment_cmp.CMPOrder</remote>
<ejb-class>my.ordershipment_cmp.CMPOrderBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>my.ordershipment_cmp.CMPOrderPK</prim-key-class>
<reentrant>false</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>cmporder_ejb</abstract-schema-name>
<cmp-field>
<field-name>orderID</field-name>
</cmp-field>
<cmp-field>
<field-name>orderName</field-name>
</cmp-field>
<cmp-field>
<field-name>shipment</field-name>
</cmp-field>
<!--
<query>
<query-method>
<method-name>findByShipmentID</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql>
<![CDATA[SELECT OBJECT(a) FROM cmporder_ejb AS a WHERE a.shipment.shipmentID = ?1]]>
</ejb-ql>
</query>
-->
</entity>
<entity>
<ejb-name>cmpshipment_ejb</ejb-name>
<home>my.ordershipment_cmp.CMPShipmentHome</home>
<remote>my.ordershipment_cmp.CMPShipment</remote>
<ejb-class>my.ordershipment_cmp.CMPShipmentBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>my.ordershipment_cmp.CMPShipmentPK</prim-key-class>
<reentrant>false</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>cmpshipment_ejb</abstract-schema-name>
<cmp-field>
<field-name>shipmentID</field-name>
</cmp-field>
<cmp-field>
<field-name>destination</field-name>
</cmp-field>
<cmp-field>
<field-name>zipcode</field-name>
</cmp-field>
</entity>
</enterprise-beans>
<relationships>
<ejb-relation>
<ejb-relation-name>one-one-map</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>
order-spawns-shipment
</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<ejb-name>cmporder_ejb</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>shipment</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>
shipment-fufills-order
</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<ejb-name>cmpshipment_ejb</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
</relationships>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>cmporder_ejb</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<method>
<ejb-name>cmpshipment_ejb</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
请问如何配置jbosscmp-jdbc.xml文件?我的配置肯定不对,需要在哪些地方改进?
<!DOCTYPE jbosscmp-jdbc PUBLIC
"-//JBoss//DTD JBOSSCMP-JDBC 4.0//EN"
"http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_4_0.dtd">
<jbosscmp-jdbc>
<defaults>
<datasource>java:mysql_cmp_ordershipmentdb_jndi</datasource>
<datasource-mapping>mySQL</datasource-mapping>
<create-table>true</create-table>
<remove-table>false</remove-table>
<pk-constraint>true</pk-constraint>
<preferred-relation-mapping>foreign-key</preferred-relation-mapping>
</defaults>
<enterprise-beans>
<entity>
<ejb-name>cmporder_ejb</ejb-name>
<table-name>order_table</table-name>
<cmp-field>
<field-name>orderID</field-name>
<column-name>order_id</column-name>
<not-null />
<jdbc-type>VARCHAR</jdbc-type>
<sql-type>VARCHAR(5)</sql-type>
</cmp-field>
<cmp-field>
<field-name>orderName</field-name>
<column-name>order_name</column-name>
<jdbc-type>VARCHAR</jdbc-type>
<sql-type>VARCHAR(50)</sql-type>
</cmp-field>
<cmp-field>
<field-name>shipment</field-name>
<column-name>shipment_id</column-name>
<jdbc-type>OTHER</jdbc-type>
<sql-type>Object</sql-type>
</cmp-field>
</entity>
<entity>
<ejb-name>cmpshipment_ejb</ejb-name>
<table-name>shipment_table</table-name>
<cmp-field>
<field-name>shipmentID</field-name>
<column-name>shipment_id</column-name>
<jdbc-type>VARCHAR</jdbc-type>
<sql-type>VARCHAR(4)</sql-type>
</cmp-field>
<cmp-field>
<field-name>destination</field-name>
<column-name>destination</column-name>
<jdbc-type>VARCHAR</jdbc-type>
<sql-type>VARCHAR(50)</sql-type>
</cmp-field>
<cmp-field>
<field-name>zipcode</field-name>
<column-name>zipcode</column-name>
<jdbc-type>VARCHAR</jdbc-type>
<sql-type>VARCHAR(6)</sql-type>
</cmp-field>
</entity>
</enterprise-beans>
</jbosscmp-jdbc>