blob: 01e80bab238dcbcf2d79a34e63a2568ed7f84f78 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0,
or the Eclipse Distribution License v. 1.0 which is available at
http://www.eclipse.org/org/documents/edl-v10.php.
SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
-->
<entity-mappings xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence/orm orm_2_1.xsd"
version="2.1">
<description>Mapping Document containing persistence unit metadata.</description>
<package>org.eclipse.persistence.testing.models.jpa21.advanced.xml.ddl</package>
<mapped-superclass class="Athlete">
<attributes>
<basic name="age"/>
<basic name="firstName">
<column name="F_NAME"/>
</basic>
<basic name="lastName">
<column name="L_NAME"/>
</basic>
<element-collection name="accomplishments">
<map-key-column name="ACCOMPLISHMENT"/>
<column name="THE_DATE"/>
<temporal>DATE</temporal>
<collection-table name="JPA21_XML_DDL_RUNNER_ACS">
<join-column name="ATHLETE_ID"/>
<foreign-key name="FK_JPA21_XMLAccomplishments" foreign-key-definition="FOREIGN KEY (ATHLETE_ID) REFERENCES JPA21_XML_DDL_RUNNER (ID)"/>
</collection-table>
</element-collection>
<element-collection name="endorsements">
<map-key-join-column name="ENDORSER_ID"/>
<map-key-foreign-key name="FK_JPA21_XMLEndorsements_Key" foreign-key-definition="FOREIGN KEY (ENDORSER_ID) REFERENCES JPA21_XML_DDL_ENDORSER (ID)"/>
<column name="ENDORSEMENT"/>
<collection-table name="JPA21_XML_DDL_ENDORSEMENTS">
<join-column name="ATHLETE_ID"/>
<foreign-key name="FK_JPA21_XMLEndorsements" foreign-key-definition="FOREIGN KEY (ATHLETE_ID) REFERENCES JPA21_XML_DDL_RUNNER (ID)"/>
</collection-table>
</element-collection>
</attributes>
</mapped-superclass>
<mapped-superclass class="Utensil">
<attributes>
<id name="id">
<generated-value strategy="TABLE" generator="XML_UTENSIL_ID_GENERATOR"/>
<table-generator name="XML_UTENSIL_ID_GENERATOR" table="JPA21_XML_PK_SEQ" pk-column-name="XML_SEQ_NAME" value-column-name="XML_SEQ_COUNT" pk-column-value="XML_UTENSIL_SEQ">
<index name="INDEX_JPA21_XML_TABLE_GENERATOR" column-list="XML_SEQ_COUNT,XML_SEQ_NAME"/>
</table-generator>
</id>
<basic name="serialTag">
<column name="SERIAL_TAG"/>
</basic>
</attributes>
</mapped-superclass>
<entity name="XMLRunner" class="Runner">
<table name="JPA21_XML_DDL_RUNNER"/>
<inheritance strategy="JOINED"/>
<convert attribute-name="accomplishments.key" converter="org.eclipse.persistence.testing.models.jpa21.advanced.converters.AccomplishmentConverter"/>
<convert attribute-name="accomplishments" converter="org.eclipse.persistence.testing.models.jpa21.advanced.converters.DateConverter"/>
<convert attribute-name="age" converter="org.eclipse.persistence.testing.models.jpa21.advanced.converters.AgeConverter"/>
<attributes>
<id name="id">
<generated-value/>
</id>
<basic name="gender">
<convert converter="org.eclipse.persistence.testing.models.jpa21.advanced.converters.GenderConverter"/>
</basic>
<one-to-many name="shoes" mapped-by="runner">
<map-key-join-column name="TAG_ID"/>
<map-key-foreign-key name="FK_JPA21_XMLRunner_ShoeTag" foreign-key-definition="FOREIGN KEY (TAG_ID) REFERENCES JPA21_XML_DDL_SHOE_TAG (ID)"/>
</one-to-many>
<many-to-many name="races">
<join-table name="JPA21_XML_DDL_RUNNERS_RACES">
<join-column name="RUNNER_ID" referenced-column-name="ID"/>
<foreign-key name="FK_JPA21_XMLRunners_Races" foreign-key-definition="FOREIGN KEY (RUNNER_ID) REFERENCES JPA21_XML_DDL_RUNNER (ID)"/>
<inverse-join-column name="RACE_ID" referenced-column-name="ID"/>
<inverse-foreign-key name="FK_JPA21_XMLRunners_Races_Inverse" foreign-key-definition="FOREIGN KEY (RACE_ID) REFERENCES JPA21_XML_DDL_RACE (ID)"/>
</join-table>
</many-to-many>
<!-- Currently a convert can not be specified with a column as a -->
<!-- result of JPA 2.1 xsd bug. Until it is fixed, this is mapped in annotations -->
<!-- element-collection name="personalBests">
<map-key-convert converter="org.eclipse.persistence.testing.models.jpa21.advanced.converters.DistanceConverter"/>
<map-key-column name="DISTANCE"/>
<column name="TIME"/>
<convert converter="org.eclipse.persistence.testing.models.jpa21.advanced.converters.TimeConverter"/>
<collection-table name="JPA21_XML_DDL_RUNNER_PBS">
<join-column name="RUNNER_ID"/>
<foreign-key name="FK_JPA21_XML_Runner_PBS" foreign-key-definition="FOREIGN KEY (RUNNER_ID) REFERENCES JPA21_XML_DDL_RUNNER (ID)"/>
</collection-table>
</element-collection -->
<embedded name="info">
<convert attribute-name="level" converter="org.eclipse.persistence.testing.models.jpa21.advanced.converters.LevelConverter"/>
<convert attribute-name="health" converter="org.eclipse.persistence.testing.models.jpa21.advanced.converters.HealthConverter"/>
<convert attribute-name="status.runningStatus" converter="org.eclipse.persistence.testing.models.jpa21.advanced.converters.RunningStatusConverter"/>
</embedded>
</attributes>
</entity>
<entity name="XMLSprinter" class="Sprinter">
<table name="JPA21_XML_DDL_SPRINTER"/>
<primary-key-join-column name="SPRINTER_ID" referenced-column-name="ID"/>
<primary-key-foreign-key name="FK_JPA21_XML_Sprinter" foreign-key-definition="FOREIGN KEY (SPRINTER_ID) REFERENCES JPA21_XML_DDL_RUNNER (ID)"/>
</entity>
<entity name="XMLShoe" class="Shoe">
<table name="JPA21_XML_DDL_SHOE"/>
<attributes>
<id name="id">
<generated-value/>
</id>
<many-to-one name="runner">
<join-column name="RUNNER_ID"/>
<foreign-key name="FK_JPA21_XMLShoes_Runner" foreign-key-definition="FOREIGN KEY (RUNNER_ID) REFERENCES JPA21_XML_DDL_RUNNER (ID)"/>
</many-to-one>
</attributes>
</entity>
<entity name="XMLShoeTag" class="ShoeTag">
<table name="JPA21_XML_DDL_SHOE_TAG"/>
<attributes>
<id name="id">
<generated-value/>
</id>
</attributes>
</entity>
<entity name="XMLRace" class="Race">
<table name="JPA21_XML_DDL_RACE"/>
<attributes>
<id name="id">
<generated-value/>
</id>
<basic name="name"/>
<one-to-many name="organizers" mapped-by="race">
<map-key-convert attribute-name="uniqueIdentifier" disable-conversion="true"/>
<map-key-convert attribute-name="description" converter="org.eclipse.persistence.testing.models.jpa21.advanced.converters.ResponsibilityConverter"/>
</one-to-many>
<many-to-many name="runners" mapped-by="races"/>
</attributes>
</entity>
<entity name="XMLEndorser" class="Endorser">
<table name="JPA21_XML_DDL_ENDORSER"/>
<attributes>
<id name="id">
<generated-value/>
</id>
<basic name="name"/>
</attributes>
</entity>
<entity name="XMLOrganizer" class="Organizer">
<table name="JPA21_XML_DDL_ORGANIZER"/>
<attributes>
<id name="id">
<generated-value/>
</id>
<basic name="name"/>
<many-to-one name="race">
<join-column name="RACE_ID"/>
<foreign-key name="FK_JPA21_XMLOrganizer_Race" foreign-key-definition="FOREIGN KEY (RACE_ID) REFERENCES JPA21_XML_DDL_RACE (ID)"/>
</many-to-one>
</attributes>
</entity>
<entity name="XMLFork" class="Fork">
<table name="JPA21_XML_FORK">
<!-- default the name to JPA21_XML_FORK_INDEX_STYLE_COLOR -->
<index column-list="STYLE, COLOR"/>
</table>
<secondary-table name="JPA21_XML_FORK_COSTS">
<index name="INDEX_JPA21_XML_FORK_COSTS" column-list="COST, RENTAL_COST"/>
</secondary-table>
<attributes>
<basic name="price">
<column name="COST" table="JPA21_XML_FORK_COSTS"/>
</basic>
<basic name="rental">
<column name="RENTAL_COST" table="JPA21_XML_FORK_COSTS"/>
</basic>
<many-to-many name="users">
<join-table name="JPA21_XML_FORK_FORK_USERS">
<join-column name="FORK_ID" referenced-column-name="ID"/>
<inverse-join-column name="FORK_USER_ID" referenced-column-name="ID"/>
<index name="JPA21_XML_FORK_USERS_INDEX" column-list="FORK_USER_ID, FORK_ID"/>
</join-table>
</many-to-many>
<element-collection name="uses">
<column name="DESCRIP"/>
<collection-table name="JPA21_XML_FORK_USES">
<index name="JPA21_XML_FORK_USES_INDEX" column-list="DESCRIP"/>
</collection-table>
</element-collection>
</attributes>
</entity>
<entity name="XMLForkUser" class="ForkUser">
<table name="JPA21_XML_FORK_USER"/>
<attributes>
<id name="id">
<generated-value/>
</id>
<many-to-many name="forks" mapped-by="users"/>
</attributes>
</entity>
<embeddable class="RunnerInfo">
<attributes>
<basic name="level">
<column name="R_LEVEL"/>
</basic>
<basic name="health">
<column name="R_HEALTH"/>
</basic>
</attributes>
</embeddable>
<embeddable class="RunnerStatus">
<attributes>
<basic name="runningStatus">
<column name="R_STATUS"/>
</basic>
</attributes>
</embeddable>
<embeddable class="Responsibility">
<attributes>
<basic name="uniqueIdentifier"/>
<basic name="description"/>
</attributes>
</embeddable>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.AccomplishmentConverter"/>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.AgeConverter"/>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.DateConverter"/>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.DistanceConverter"/>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.GenderConverter"/>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.HealthConverter"/>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.LevelConverter"/>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.LongToStringConverter" auto-apply="true"/>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.ResponsibilityConverter"/>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.RunningStatusConverter"/>
<converter class="org.eclipse.persistence.testing.models.jpa21.advanced.converters.TimeConverter"/>
</entity-mappings>