<?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="1.0" xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd">
    <description>JPA Performance Test ORM</description>
    <entity name="Employee" class="org.eclipse.persistence.testing.models.jpa.performance.Employee" access="FIELD">
        <table name="P_EMPLOYEE"/>
        <sequence-generator name="EMP_SEQ" sequence-name="EMP_SEQ" allocation-size="48"/>
        <attributes>
            <id name="id">
                <column name="EMP_ID"/>
                <generated-value strategy="SEQUENCE" generator="EMP_SEQ"/>
            </id>
            <basic name="firstName">
                <column name="F_NAME"/>
            </basic>
            <basic name="lastName">
                <column name="L_NAME"/>
            </basic>
            <basic name="gender">
                <column name="GENDER"/>
            </basic>
            <basic name="salary">
                <column name="SALARY"/>
            </basic>
            <version name="version">
                <column name="VERSION"/>
            </version>
            <many-to-one name="manager" target-entity="org.eclipse.persistence.testing.models.jpa.performance.Employee" fetch="LAZY">
                <join-column name="MANAGER_ID" referenced-column-name="EMP_ID"/>
                <cascade>
                    <cascade-persist/>
                </cascade>
            </many-to-one>
            <one-to-many name="phoneNumbers" target-entity="org.eclipse.persistence.testing.models.jpa.performance.PhoneNumber" mapped-by="owner">
                <cascade>
                    <cascade-all/>
                </cascade>
            </one-to-many>
            <one-to-many name="managedEmployees" target-entity="org.eclipse.persistence.testing.models.jpa.performance.Employee" mapped-by="manager">
                <cascade>
                    <cascade-persist/>
                </cascade>
            </one-to-many>
            <one-to-one name="address" target-entity="org.eclipse.persistence.testing.models.jpa.performance.Address" fetch="LAZY">
                <join-column name="ADDR_ID"/>
                <cascade>
                    <cascade-all/>
                </cascade>
            </one-to-one>
            <many-to-many name="projects" target-entity="org.eclipse.persistence.testing.models.jpa.performance.Project">
                <join-table name="P_PROJ_EMP">
                    <join-column name="EMP_ID" referenced-column-name="EMP_ID"/>
                    <inverse-join-column name="PROJ_ID" referenced-column-name="PROJ_ID"/>
                </join-table>
                <cascade>
                    <cascade-persist/>
                </cascade>
            </many-to-many>
            <embedded name="period"/>
        </attributes>
    </entity>
    <entity name="Address" class="org.eclipse.persistence.testing.models.jpa.performance.Address" access="FIELD">
        <table name="P_ADDRESS"/>
        <sequence-generator name="ADDRESS_SEQ" sequence-name="ADDRESS_SEQ" allocation-size="48"/>
        <named-query name="findAddressByCity">
            <query>Select a from Address a where a.city = :city</query>
        </named-query>
        <named-query name="findAddressByStreet">
            <query>Select a from Address a where a.street = :street</query>
        </named-query>
        <attributes>
            <id name="id">
                <column name="ADDRESS_ID"/>
                <generated-value strategy="SEQUENCE" generator="ADDRESS_SEQ"/>
            </id>
            <basic name="postalCode">
                <column name="P_CODE"/>
            </basic>
            <basic name="street">
                <column name="STREET"/>
            </basic>
            <basic name="city">
                <column name="CITY"/>
            </basic>
            <basic name="province">
                <column name="PROVINCE"/>
            </basic>
            <basic name="country">
                <column name="COUNTRY"/>
            </basic>
        </attributes>
    </entity>
    <entity name="PhoneNumber" class="org.eclipse.persistence.testing.models.jpa.performance.PhoneNumber" access="FIELD">
        <table name="P_PHONE"/>
        <sequence-generator name="PHONE_SEQ" sequence-name="PHONE_SEQ" allocation-size="48"/>
        <attributes>
            <id name="id">
                <column name="PHONE_ID"/>
                <generated-value strategy="SEQUENCE" generator="PHONE_SEQ"/>
            </id>
            <basic name="type">
                <column name="TYPE"/>
            </basic>
            <basic name="number">
                <column name="P_NUMBER"/>
            </basic>
            <basic name="areaCode">
                <column name="AREA_CODE"/>
            </basic>
            <many-to-one name="owner" target-entity="org.eclipse.persistence.testing.models.jpa.performance.Employee" fetch="LAZY">
                <join-column name="EMP_ID" referenced-column-name="EMP_ID"/>
            </many-to-one>
        </attributes>
    </entity>
    <entity name="LargeProject" class="org.eclipse.persistence.testing.models.jpa.performance.LargeProject" access="FIELD">
        <table name="P_LPROJECT"/>
        <discriminator-value>L</discriminator-value>
        <attributes>
            <basic name="budget">
                <column name="BUDGET"/>
            </basic>
            <basic name="milestoneVersion">
                <column name="MILESTONE"/>
            </basic>
        </attributes>
    </entity>
    <entity name="SmallProject" class="org.eclipse.persistence.testing.models.jpa.performance.SmallProject" access="FIELD">
        <table name="P_SPROJECT"/>
        <discriminator-value>S</discriminator-value>
    </entity>
    <entity name="Project" class="org.eclipse.persistence.testing.models.jpa.performance.Project" access="FIELD">
        <table name="P_PROJECT"/>
        <inheritance strategy="JOINED"/>
        <discriminator-value>P</discriminator-value>
        <discriminator-column name="PROJ_TYPE"/>
        <sequence-generator name="PROJ_SEQ" sequence-name="PROJ_SEQ" allocation-size="48"/>
        <attributes>
            <id name="id">
                <column name="PROJ_ID"/>
                <generated-value strategy="SEQUENCE" generator="PROJ_SEQ"/>
            </id>
            <basic name="name">
                <column name="PROJ_NAME"/>
            </basic>
            <basic name="description">
                <column name="DESCRIP"/>
            </basic>
            <version name="version">
                <column name="VERSION"/>
            </version>
            <many-to-one name="teamLeader" target-entity="org.eclipse.persistence.testing.models.jpa.performance.Employee" fetch="LAZY">
                <join-column name="LEADER_ID"/>
            </many-to-one>
        </attributes>
    </entity>
    <embeddable class="org.eclipse.persistence.testing.models.jpa.performance.EmploymentPeriod" access="FIELD">
        <attributes>
            <basic name="startDate">
                <column name="START_DATE"/>
            </basic>
            <basic name="endDate">
                <column name="END_DATE"/>
            </basic>
        </attributes>
    </embeddable>
</entity-mappings>
