The RDB DAS provides the ability to work with single-column keys as well as compound keys. Keys must be identified to the DAS for two purposes: flushing changes to the database and defining a relationship. In either case, the keys can be single-colomn or compound.
We'll start with the first purpose: flushing changes to the database (also called "apply changes processing"). As part of change summary processing, the DAS will generate a set of INSERT, UPDATE and DELETE statements for execution against the database and these statements require a primary key. So, although the primary key definition is not required for reading data, it is required for writeing data via apply changes processing.
The primary key for a table can be identified to the DAS via configuration (typically via a configuration xml file). The follwing is an example config file that defines a compound primary key:
<Config xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Table tableName="ORDERDETAILS"> <Column columnName="ORDERID" primaryKey="true"/> <Column columnName="PRODUCTID" primaryKey="true"/> </Table> <Table tableName="ANORDER"> <Column columnName="ID" primaryKey="true"/> </Table> <Relationship name="ORDERDETAILS" primaryKeyTable="ANORDER" foreignKeyTable="ORDERDETAILS" many="true"> <KeyPair primaryKeyColumn="ID" foreignKeyColumn="ORDERID"/> </Relationship> </Config>
To be continued ...