blob: 2b6b092305b4c1134310c2fdd03bd3540aef5fd3 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.0" xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<package>model</package>
<entity name="Employee" class="Employee" access="PROPERTY">
<attributes>
<id name="id">
<column name="EMP_ID"/>
</id>
<element-collection name="responsibilities"/>
<many-to-one name="address" target-entity="Address" fetch="LAZY">
<join-column name="ADDR_ID"/>
</many-to-one>
<many-to-one name="manager" target-entity="Employee" fetch="LAZY">
<join-column name="MANAGER_ID" referenced-column-name="EMP_ID"/>
</many-to-one>
<one-to-many name="phoneNumbers" target-entity="PhoneNumber" mapped-by="owner"/>
<one-to-many name="managedEmployees" target-entity="Employee" mapped-by="manager"/>
<many-to-many name="projects" target-entity="Project"/>
<embedded name="period">
<attribute-override name="startDate">
<column name="START_DATE" nullable="false"/>
</attribute-override>
<attribute-override name="endDate">
<column name="END_DATE" nullable="true"/>
</attribute-override>
</embedded>
</attributes>
</entity>
<entity name="Address" class="Address" access="PROPERTY">
<attributes>
<id name="id">
<column name="ADDRESS_ID"/>
</id>
<one-to-many name="employees" target-entity="Employee" mapped-by="address"/>
</attributes>
</entity>
<entity name="PhoneNumber" class="PhoneNumber" access="PROPERTY">
<id-class class="PhoneNumberPK"/>
<attributes>
<id name="id">
<column name="OWNER_ID" insertable="false" updatable="false"/>
</id>
<id name="type">
<column name="TYPE"/>
</id>
<basic name="number">
<column name="NUMB"/>
</basic>
<many-to-one name="owner" target-entity="Employee">
<join-column name="OWNER_ID" referenced-column-name="EMP_ID"/>
</many-to-one>
</attributes>
</entity>
<entity name="Project" class="Project" access="PROPERTY">
<inheritance strategy="JOINED"/>
<discriminator-value>P</discriminator-value>
<attributes>
<id name="id">
<column name="PROJ_ID"/>
</id>
<one-to-one name="teamLeader" target-entity="Employee">
<join-column name="LEADER_ID"/>
</one-to-one>
<many-to-many name="teamMembers" target-entity="Employee" mapped-by="projects"/>
</attributes>
</entity>
<embeddable class="EmploymentPeriod" access="PROPERTY">
<attributes>
<basic name="startDate">
<column name="S_DATE"/>
</basic>
<basic name="endDate">
<column name="E_DATE"/>
</basic>
</attributes>
</embeddable>
</entity-mappings>