blob: f923dc1bb7bf7247c1863d2a2736da0413aacdfa [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 version="2.3" xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<description>Advanced Multitenant Test Model Instance Document</description>
<package>org.eclipse.persistence.testing.models.jpa.xml.advanced.multitenant</package>
<entity name="XMLMafiaFamily" class="MafiaFamily">
<multitenant>
<tenant-discriminator-column name="TENANT_ID" context-property="tenant.id"/>
</multitenant>
<table name="XML_MAFIA_FAMILY"/>
<secondary-table name="XML_FAMILY_REVENUE"/>
<named-query name="findJPQLXMLMafiaFamilies">
<query>SELECT s from XMLMafiaFamily s</query>
</named-query>
<attributes>
<id name="id">
<column name="ID"/>
<generated-value/>
</id>
<basic name="name"/>
<basic name="revenue">
<column name="REVENUE" table="XML_FAMILY_REVENUE"/>
</basic>
<one-to-many name="mafiosos" mapped-by="family">
<cascade>
<cascade-all/>
</cascade>
</one-to-many>
<element-collection name="tags">
<column name="TAG"/>
<collection-table name="XML_FAMILY_TAGS">
<join-column name="FAMILY_ID"/>
</collection-table>
</element-collection>
</attributes>
</entity>
<entity name="XMLMafioso" class="Mafioso">
<multitenant>
<tenant-discriminator-column name="TENANT_ID" context-property="tenant.id"/>
</multitenant>
<table name="XML_MAFIOSO"/>
<inheritance strategy="JOINED"/>
<discriminator-column name="DTYPE"/>
<attributes>
<id name="id">
<column name="ID"/>
<generated-value/>
</id>
<basic name="firstName"/>
<basic name="lastName"/>
<basic name="gender">
<convert>gender</convert>
<object-type-converter name="gender" data-type="String" object-type="Mafioso$Gender">
<conversion-value data-value="F" object-value="Female"/>
<conversion-value data-value="M" object-value="Male"/>
</object-type-converter>
</basic>
<many-to-one name="family">
<join-column name="FAMILY_ID"/>
</many-to-one>
</attributes>
</entity>
<entity name="XMLBoss" class="Boss">
<table name="XML_BOSS"/>
<discriminator-value>DON</discriminator-value>
<named-query name="UpdateXMLBossName">
<query>UPDATE XMLBoss b set b.firstName = :name where b.id = :id</query>
</named-query>
<attributes>
<one-to-one name="underboss">
<join-column name="UNDERBOSS_ID"/>
<cascade>
<cascade-all/>
</cascade>
</one-to-one>
</attributes>
</entity>
<entity name="XMLUnderboss" class="Underboss">
<table name="XML_UNDERBOSS"/>
<discriminator-value>LITTLE_DON</discriminator-value>
<attributes>
<one-to-many name="capos" mapped-by="underboss"/>
<one-to-one name="boss" mapped-by="underboss">
<cascade>
<cascade-all/>
</cascade>
</one-to-one>
</attributes>
</entity>
<entity name="XMLCapo" class="Capo">
<table name="XML_CAPO"/>
<discriminator-value>CAPO</discriminator-value>
<attributes>
<many-to-one name="underboss"/>
<one-to-many name="soldiers" mapped-by="capo"/>
</attributes>
</entity>
<entity name="XMLSoldier" class="Soldier">
<table name="XML_SOLDIER"/>
<discriminator-value>SOLDIER</discriminator-value>
<attributes>
<many-to-one name="capo"/>
<many-to-many name="contracts" mapped-by="soldiers">
<cascade>
<cascade-all/>
</cascade>
</many-to-many>
</attributes>
</entity>
<entity name="XMLContract" class="Contract">
<multitenant type="SINGLE_TABLE"/>
<table name="XML_CONTRACT"/>
<named-query name="FindAllXmlContracts">
<query>SELECT c FROM XMLContract c</query>
</named-query>
<named-query name="UpdateAllXmlContractDescriptions">
<query>UPDATE XMLContract c SET c.description = 'voided'</query>
</named-query>
<attributes>
<id name="id">
<column name="ID"/>
<generated-value/>
</id>
<basic name="description">
<column name="DESCRIP"/>
</basic>
<basic name="tenantId">
<column name="TENANT_ID" insertable="false" updatable="false"/>
</basic>
<version name="version"/>
<many-to-many name="soldiers">
<join-table name="XML_CONTRACT_SOLDIER">
<join-column name="CONTRACT_ID"/>
<inverse-join-column name="SOLDIER_ID"/>
</join-table>
<cascade>
<cascade-all/>
</cascade>
</many-to-many>
</attributes>
</entity>
</entity-mappings>