<?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> |