/******************************************************************************* * Copyright (c) 1998, 2015 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 v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Oracle - initial API and implementation from Oracle TopLink ******************************************************************************/ package org.eclipse.persistence.testing.models.employee.relational; import org.eclipse.persistence.sessions.*; import org.eclipse.persistence.descriptors.*; import org.eclipse.persistence.mappings.*; import org.eclipse.persistence.mappings.converters.*; import org.eclipse.persistence.queries.*; import org.eclipse.persistence.expressions.ExpressionBuilder; /** * This class was generated by the TopLink project class generator. * It stores the meta-data (descriptors) that define the TopLink mappings. * ## OracleAS TopLink - 10g (10.1.3 ) (Build 040713) ## * @see org.eclipse.persistence.sessions.factories.ProjectClassGenerator */ public class EmployeeProject extends org.eclipse.persistence.sessions.Project { public EmployeeProject() { setName("Employee"); applyLogin(); addDescriptor(buildAddressDescriptor()); addDescriptor(buildChildDescriptor()); addDescriptor(buildEmployeeDescriptor()); addDescriptor(buildEmploymentPeriodDescriptor()); addDescriptor(buildLargeProjectDescriptor()); addDescriptor(buildPhoneNumberDescriptor()); addDescriptor(buildProjectDescriptor()); addDescriptor(buildSmallProjectDescriptor()); } public void applyLogin() { DatabaseLogin login = new DatabaseLogin(); login.usePlatform(new org.eclipse.persistence.platform.database.OraclePlatform()); login.setDriverClassName("oracle.jdbc.OracleDriver"); login.setConnectionString("jdbc:oracle:thin:@localhost:1521:orcl"); login.setUserName("scott"); login.setEncryptedPassword("3E20F8982C53F4ABA825E30206EC8ADE"); login.setUsesExternalConnectionPooling(false); login.setUsesExternalTransactionController(false); setDatasourceLogin(login); } public ClassDescriptor buildAddressDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClass(org.eclipse.persistence.testing.models.employee.domain.Address.class); descriptor.addTableName("ADDRESS"); descriptor.addPrimaryKeyFieldName("ADDRESS.ADDRESS_ID"); // Descriptor Properties. descriptor.useSoftCacheWeakIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.setSequenceNumberFieldName("ADDRESS.ADDRESS_ID"); descriptor.setSequenceNumberName("ADDRESS_SEQ"); descriptor.setAlias("Address"); // Cache Invalidation Policy // Query Manager. descriptor.getQueryManager().checkCacheForDoesExist(); // Named Queries. // Event Manager. // Mappings. DirectToFieldMapping cityMapping = new DirectToFieldMapping(); cityMapping.setAttributeName("city"); cityMapping.setFieldName("ADDRESS.CITY"); descriptor.addMapping(cityMapping); DirectToFieldMapping countryMapping = new DirectToFieldMapping(); countryMapping.setAttributeName("country"); countryMapping.setFieldName("ADDRESS.COUNTRY"); descriptor.addMapping(countryMapping); DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("ADDRESS.ADDRESS_ID"); descriptor.addMapping(idMapping); DirectToFieldMapping postalCodeMapping = new DirectToFieldMapping(); postalCodeMapping.setAttributeName("postalCode"); postalCodeMapping.setFieldName("ADDRESS.P_CODE"); descriptor.addMapping(postalCodeMapping); DirectToFieldMapping provinceMapping = new DirectToFieldMapping(); provinceMapping.setAttributeName("province"); provinceMapping.setFieldName("ADDRESS.PROVINCE"); descriptor.addMapping(provinceMapping); DirectToFieldMapping streetMapping = new DirectToFieldMapping(); streetMapping.setAttributeName("street"); streetMapping.setFieldName("ADDRESS.STREET"); descriptor.addMapping(streetMapping); return descriptor; } public ClassDescriptor buildChildDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClass(org.eclipse.persistence.testing.models.employee.domain.Child.class); descriptor.addTableName("CHILD"); descriptor.addPrimaryKeyFieldName("CHILD.CHILD_ID"); descriptor.useSoftCacheWeakIdentityMap(); descriptor.setIdentityMapSize(50); descriptor.setSequenceNumberFieldName("CHILD.CHILD_ID"); descriptor.setSequenceNumberName("CHILD_SEQ"); descriptor.setAlias("Child"); // Query Manager. descriptor.getQueryManager().checkCacheForDoesExist(); // Mappings. DirectToFieldMapping firstNameMapping = new DirectToFieldMapping(); firstNameMapping.setAttributeName("firstName"); firstNameMapping.setFieldName("F_NAME"); firstNameMapping.setNullValue(""); descriptor.addMapping(firstNameMapping); DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("CHILD_ID"); descriptor.addMapping(idMapping); DirectToFieldMapping lastNameMapping = new DirectToFieldMapping(); lastNameMapping.setAttributeName("lastName"); lastNameMapping.setFieldName("L_NAME"); lastNameMapping.setNullValue(""); descriptor.addMapping(lastNameMapping); DirectToFieldMapping genderMapping = new DirectToFieldMapping(); genderMapping.setAttributeName("gender"); genderMapping.setFieldName("GENDER"); ObjectTypeConverter genderMappingConverter = new ObjectTypeConverter(); genderMappingConverter.addConversionValue("F", "Female"); genderMappingConverter.addConversionValue("M", "Male"); genderMapping.setConverter(genderMappingConverter); descriptor.addMapping(genderMapping); DirectToFieldMapping birthdayMapping = new DirectToFieldMapping(); birthdayMapping.setAttributeName("birthday"); birthdayMapping.setFieldName("BIRTHDAY"); descriptor.addMapping(birthdayMapping); OneToOneMapping managerMapping = new OneToOneMapping(); managerMapping.setAttributeName("parent"); managerMapping.setReferenceClass(org.eclipse.persistence.testing.models.employee.domain.Employee.class); managerMapping.dontUseIndirection(); managerMapping.addForeignKeyFieldName("CHILD.PARENT_EMP_ID", "EMPLOYEE.EMP_ID"); descriptor.addMapping(managerMapping); return descriptor; } public ClassDescriptor buildEmployeeDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClass(org.eclipse.persistence.testing.models.employee.domain.Employee.class); descriptor.addTableName("EMPLOYEE"); descriptor.addTableName("SALARY"); descriptor.addPrimaryKeyFieldName("EMPLOYEE.EMP_ID"); // Interface Properties. descriptor.getInterfacePolicy().addParentInterface(org.eclipse.persistence.testing.models.employee.interfaces.Employee.class); // Descriptor Properties. descriptor.useSoftCacheWeakIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.getCachePolicy().addCacheIndex("F_NAME", "L_NAME"); descriptor.setSequenceNumberFieldName("EMPLOYEE.EMP_ID"); descriptor.setSequenceNumberName("EMP_SEQ"); VersionLockingPolicy lockingPolicy = new VersionLockingPolicy(); lockingPolicy.setWriteLockFieldName("EMPLOYEE.VERSION"); descriptor.setOptimisticLockingPolicy(lockingPolicy); descriptor.setAlias("Employee"); // Cache Invalidation Policy // Query Manager. descriptor.getQueryManager().checkCacheForDoesExist(); // Named Queries. // Event Manager. // Mappings. DirectToFieldMapping firstNameMapping = new DirectToFieldMapping(); firstNameMapping.setAttributeName("firstName"); firstNameMapping.setFieldName("EMPLOYEE.F_NAME"); firstNameMapping.setNullValue(""); descriptor.addMapping(firstNameMapping); DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("EMPLOYEE.EMP_ID"); descriptor.addMapping(idMapping); DirectToFieldMapping lastNameMapping = new DirectToFieldMapping(); lastNameMapping.setAttributeName("lastName"); lastNameMapping.setFieldName("EMPLOYEE.L_NAME"); lastNameMapping.setNullValue(""); descriptor.addMapping(lastNameMapping); DirectToFieldMapping salaryMapping = new DirectToFieldMapping(); salaryMapping.setAttributeName("salary"); salaryMapping.setFieldName("SALARY.SALARY"); descriptor.addMapping(salaryMapping); DirectToFieldMapping genderMapping = new DirectToFieldMapping(); genderMapping.setAttributeName("gender"); genderMapping.setFieldName("EMPLOYEE.GENDER"); ObjectTypeConverter genderMappingConverter = new ObjectTypeConverter(); genderMappingConverter.addConversionValue("F", "Female"); genderMappingConverter.addConversionValue("M", "Male"); genderMapping.setConverter(genderMappingConverter); descriptor.addMapping(genderMapping); TransformationMapping normalHoursMapping = new TransformationMapping(); normalHoursMapping.setAttributeName("normalHours"); normalHoursMapping.setAttributeTransformation("buildNormalHours"); normalHoursMapping.addFieldTransformation("EMPLOYEE.START_TIME", "getStartTime"); normalHoursMapping.addFieldTransformation("EMPLOYEE.END_TIME", "getEndTime"); normalHoursMapping.setIsMutable(true); descriptor.addMapping(normalHoursMapping); AggregateObjectMapping periodMapping = new AggregateObjectMapping(); periodMapping.setAttributeName("period"); periodMapping.setReferenceClass(org.eclipse.persistence.testing.models.employee.domain.EmploymentPeriod.class); periodMapping.setIsNullAllowed(true); periodMapping.addFieldNameTranslation("EMPLOYEE.END_DATE", "endDate->DIRECT"); periodMapping.addFieldNameTranslation("EMPLOYEE.START_DATE", "startDate->DIRECT"); descriptor.addMapping(periodMapping); DirectCollectionMapping responsibilitiesListMapping = new DirectCollectionMapping(); responsibilitiesListMapping.setAttributeName("responsibilitiesList"); responsibilitiesListMapping.useBasicIndirection(); responsibilitiesListMapping.setReferenceTableName("RESPONS"); responsibilitiesListMapping.setDirectFieldName("RESPONS.DESCRIP"); responsibilitiesListMapping.addReferenceKeyFieldName("RESPONS.EMP_ID", "EMPLOYEE.EMP_ID"); descriptor.addMapping(responsibilitiesListMapping); OneToOneMapping addressMapping = new OneToOneMapping(); addressMapping.setAttributeName("address"); addressMapping.setReferenceClass(org.eclipse.persistence.testing.models.employee.domain.Address.class); addressMapping.useBasicIndirection(); addressMapping.privateOwnedRelationship(); addressMapping.addForeignKeyFieldName("EMPLOYEE.ADDR_ID", "ADDRESS.ADDRESS_ID"); descriptor.addMapping(addressMapping); //Joel:EJBQLTesting OneToOneMapping managerMapping = new OneToOneMapping(); managerMapping.setAttributeName("manager"); managerMapping.setReferenceClass(org.eclipse.persistence.testing.models.employee.domain.Employee.class); managerMapping.useBasicIndirection(); managerMapping.addForeignKeyFieldName("EMPLOYEE.MANAGER_ID", "EMPLOYEE.EMP_ID"); descriptor.addMapping(managerMapping); OneToManyMapping managedEmployeesMapping = new OneToManyMapping(); managedEmployeesMapping.setAttributeName("managedEmployees"); managedEmployeesMapping.setReferenceClass(org.eclipse.persistence.testing.models.employee.domain.Employee.class); managedEmployeesMapping.useBasicIndirection(); managedEmployeesMapping.addTargetForeignKeyFieldName("EMPLOYEE.MANAGER_ID", "EMPLOYEE.EMP_ID"); descriptor.addMapping(managedEmployeesMapping); OneToManyMapping childrenMapping = new OneToManyMapping(); childrenMapping.setAttributeName("children"); childrenMapping.setReferenceClass(org.eclipse.persistence.testing.models.employee.domain.Child.class); childrenMapping.addAscendingOrdering("birthday"); childrenMapping.useTransparentList(); childrenMapping.privateOwnedRelationship(); childrenMapping.addTargetForeignKeyFieldName("CHILD.PARENT_EMP_ID", "EMPLOYEE.EMP_ID"); descriptor.addMapping(childrenMapping); OneToManyMapping phoneNumbersMapping = new OneToManyMapping(); phoneNumbersMapping.setAttributeName("phoneNumbers"); phoneNumbersMapping.setReferenceClass(org.eclipse.persistence.testing.models.employee.domain.PhoneNumber.class); phoneNumbersMapping.useBasicIndirection(); phoneNumbersMapping.privateOwnedRelationship(); phoneNumbersMapping.addTargetForeignKeyFieldName("PHONE.EMP_ID", "EMPLOYEE.EMP_ID"); descriptor.addMapping(phoneNumbersMapping); ManyToManyMapping projectsMapping = new ManyToManyMapping(); projectsMapping.setAttributeName("projects"); projectsMapping.setReferenceClass(org.eclipse.persistence.testing.models.employee.domain.Project.class); projectsMapping.useBasicIndirection(); projectsMapping.setRelationTableName("PROJ_EMP"); projectsMapping.addSourceRelationKeyFieldName("PROJ_EMP.EMP_ID", "EMPLOYEE.EMP_ID"); projectsMapping.addTargetRelationKeyFieldName("PROJ_EMP.PROJ_ID", "PROJECT.PROJ_ID"); descriptor.addMapping(projectsMapping); return descriptor; } public ClassDescriptor buildEmploymentPeriodDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.descriptorIsAggregate(); descriptor.setJavaClass(org.eclipse.persistence.testing.models.employee.domain.EmploymentPeriod.class); // Descriptor Properties. descriptor.setAlias("EmploymentPeriod"); // Cache Invalidation Policy // Query Manager. // Named Queries. // Event Manager. // Mappings. DirectToFieldMapping endDateMapping = new DirectToFieldMapping(); endDateMapping.setAttributeName("endDate"); endDateMapping.setFieldName("endDate->DIRECT"); descriptor.addMapping(endDateMapping); DirectToFieldMapping startDateMapping = new DirectToFieldMapping(); startDateMapping.setAttributeName("startDate"); startDateMapping.setFieldName("startDate->DIRECT"); descriptor.addMapping(startDateMapping); return descriptor; } public ClassDescriptor buildLargeProjectDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClass(org.eclipse.persistence.testing.models.employee.domain.LargeProject.class); descriptor.addTableName("LPROJECT"); // Inheritance Properties. descriptor.getInheritancePolicy().setParentClass(org.eclipse.persistence.testing.models.employee.domain.Project.class); descriptor.getInheritancePolicy().dontReadSubclassesOnQueries(); // Interface Properties. descriptor.getInterfacePolicy().addParentInterface(org.eclipse.persistence.testing.models.employee.interfaces.LargeProject.class); // Descriptor Properties. descriptor.setAlias("LargeProject"); // Cache Invalidation Policy // Query Manager. descriptor.getQueryManager().checkCacheForDoesExist(); // Named Queries. // Event Manager. // Mappings. DirectToFieldMapping budgetMapping = new DirectToFieldMapping(); budgetMapping.setAttributeName("budget"); budgetMapping.setFieldName("LPROJECT.BUDGET"); descriptor.addMapping(budgetMapping); DirectToFieldMapping milestoneVersionMapping = new DirectToFieldMapping(); milestoneVersionMapping.setAttributeName("milestoneVersion"); milestoneVersionMapping.setFieldName("LPROJECT.MILESTONE"); descriptor.addMapping(milestoneVersionMapping); return descriptor; } public ClassDescriptor buildPhoneNumberDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClass(org.eclipse.persistence.testing.models.employee.domain.PhoneNumber.class); descriptor.addTableName("PHONE"); descriptor.addPrimaryKeyFieldName("PHONE.EMP_ID"); descriptor.addPrimaryKeyFieldName("PHONE.TYPE"); // Descriptor Properties. descriptor.useSoftCacheWeakIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.setAlias("PhoneNumber"); // Cache Invalidation Policy // Query Manager. descriptor.getQueryManager().checkCacheForDoesExist(); // Named Queries. //Named Query -- localNumbers ReadObjectQuery namedQuery0 = new ReadObjectQuery(org.eclipse.persistence.testing.models.employee.domain.PhoneNumber.class); namedQuery0.setName("localNumbers"); namedQuery0.setCascadePolicy(1); namedQuery0.setShouldUseWrapperPolicy(true); namedQuery0.setShouldMaintainCache(true); namedQuery0.setShouldPrepare(true); namedQuery0.setMaxRows(0); namedQuery0.setShouldRefreshIdentityMapResult(false); namedQuery0.setCacheUsage(2); namedQuery0.setLockMode((short)0); namedQuery0.setDistinctState((short)0); namedQuery0.setInMemoryQueryIndirectionPolicy(new InMemoryQueryIndirectionPolicy(0)); ExpressionBuilder expBuilder0 = namedQuery0.getExpressionBuilder(); namedQuery0.setSelectionCriteria(expBuilder0.get("id").equal(expBuilder0.getParameter("ID")).and(expBuilder0.get("areaCode").equal("613"))); namedQuery0.addArgument("ID", java.lang.Number.class); descriptor.getQueryManager().addQuery("localNumbers", namedQuery0); // Event Manager. // Query keys. descriptor.addDirectQueryKey("id", "PHONE.EMP_ID"); // Mappings. DirectToFieldMapping areaCodeMapping = new DirectToFieldMapping(); areaCodeMapping.setAttributeName("areaCode"); areaCodeMapping.setFieldName("PHONE.AREA_CODE"); descriptor.addMapping(areaCodeMapping); DirectToFieldMapping numberMapping = new DirectToFieldMapping(); numberMapping.setAttributeName("number"); numberMapping.setFieldName("PHONE.P_NUMBER"); descriptor.addMapping(numberMapping); DirectToFieldMapping typeMapping = new DirectToFieldMapping(); typeMapping.setAttributeName("type"); typeMapping.setFieldName("PHONE.TYPE"); descriptor.addMapping(typeMapping); OneToOneMapping ownerMapping = new OneToOneMapping(); ownerMapping.setAttributeName("owner"); ownerMapping.setReferenceClass(org.eclipse.persistence.testing.models.employee.domain.Employee.class); ownerMapping.useBasicIndirection(); ownerMapping.addForeignKeyFieldName("PHONE.EMP_ID", "EMPLOYEE.EMP_ID"); descriptor.addMapping(ownerMapping); return descriptor; } public ClassDescriptor buildProjectDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClass(org.eclipse.persistence.testing.models.employee.domain.Project.class); descriptor.addTableName("PROJECT"); descriptor.addPrimaryKeyFieldName("PROJECT.PROJ_ID"); // Inheritance Properties. descriptor.getInheritancePolicy().setClassIndicatorFieldName("PROJECT.PROJ_TYPE"); descriptor.getInheritancePolicy().addClassIndicator(org.eclipse.persistence.testing.models.employee.domain.SmallProject.class, "S"); descriptor.getInheritancePolicy().addClassIndicator(org.eclipse.persistence.testing.models.employee.domain.LargeProject.class, "L"); // Interface Properties. descriptor.getInterfacePolicy().addParentInterface(org.eclipse.persistence.testing.models.employee.interfaces.Project.class); // Descriptor Properties. descriptor.useSoftCacheWeakIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.setSequenceNumberFieldName("PROJECT.PROJ_ID"); descriptor.setSequenceNumberName("PROJ_SEQ"); VersionLockingPolicy lockingPolicy = new VersionLockingPolicy(); lockingPolicy.setWriteLockFieldName("PROJECT.VERSION"); descriptor.setOptimisticLockingPolicy(lockingPolicy); descriptor.setAlias("Project"); // Cache Invalidation Policy // Query Manager. descriptor.getQueryManager().checkCacheForDoesExist(); // Named Queries. // Event Manager. // Mappings. DirectToFieldMapping descriptionMapping = new DirectToFieldMapping(); descriptionMapping.setAttributeName("description"); descriptionMapping.setFieldName("PROJECT.DESCRIP"); descriptionMapping.setNullValue(""); descriptor.addMapping(descriptionMapping); DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("PROJECT.PROJ_ID"); descriptor.addMapping(idMapping); DirectToFieldMapping nameMapping = new DirectToFieldMapping(); nameMapping.setAttributeName("name"); nameMapping.setFieldName("PROJECT.PROJ_NAME"); nameMapping.setNullValue(""); descriptor.addMapping(nameMapping); OneToOneMapping teamLeaderMapping = new OneToOneMapping(); teamLeaderMapping.setAttributeName("teamLeader"); teamLeaderMapping.setReferenceClass(org.eclipse.persistence.testing.models.employee.domain.Employee.class); teamLeaderMapping.useBasicIndirection(); teamLeaderMapping.addForeignKeyFieldName("PROJECT.LEADER_ID", "EMPLOYEE.EMP_ID"); descriptor.addMapping(teamLeaderMapping); return descriptor; } public ClassDescriptor buildSmallProjectDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClass(org.eclipse.persistence.testing.models.employee.domain.SmallProject.class); descriptor.addTableName("PROJECT"); // Inheritance Properties. descriptor.getInheritancePolicy().setParentClass(org.eclipse.persistence.testing.models.employee.domain.Project.class); descriptor.getInheritancePolicy().dontReadSubclassesOnQueries(); // Interface Properties. descriptor.getInterfacePolicy().addParentInterface(org.eclipse.persistence.testing.models.employee.interfaces.SmallProject.class); // Descriptor Properties. descriptor.setAlias("SmallProject"); // Cache Invalidation Policy // Query Manager. descriptor.getQueryManager().checkCacheForDoesExist(); // Named Queries. // Event Manager. return descriptor; } }