<?xml version="1.0" encoding="UTF-8" ?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!DOCTYPE orm PUBLIC
    "-//The Apache Software Foundation//DTD Java Data Objects Mapping Metadata 3.2//EN"
    "https://db.apache.org/jdo/xmlns/orm_3_2.dtd">
<orm>
	<package name="com.xyz">
		<class name="Address" table="ADDR">
			<!-- shared join condition used by fields in DELIV -->
			<join table="DELIV" column="ADDR_STREET"/>
			<field name="street" column="STREET"/>
			<field name="city" column="CITY"/>
			<field name="state" column="STATE"/>
			<field name="zip" column="ZIPCODE"/>
			<field name="signatureRequired" table="DELIV"
				column="SIG_REQUIRED"/>
			<field name="deliveryInstructions" table="DELIV">
				<column name="DELIV_INS" jdbc-type="CLOB"/>
			</field>
			<field name="mapJPG" table="MAPQUEST_INFO" 
				column="MAPQUEST_IMAGE">
			<!-- join condition defined for this field only -->
				<join column="ADDR_STREET"/>
			</field>
		</class>
	</package>
</orm>
