blob: 27f6ddfc5f3cf8b5fc9b7d0659a1984bd6be0cc2 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 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
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.tests.tableswithspacesmodel;
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 EmployeeWithSpacesProject extends org.eclipse.persistence.sessions.Project {
public EmployeeWithSpacesProject() {
setName("Employee");
applyLogin();
addDescriptor(buildAddressDescriptor());
addDescriptor(buildEmployeeDescriptor());
addDescriptor(buildEmploymentPeriodDescriptor());
addDescriptor(buildLargeProjectDescriptor());
addDescriptor(buildPhoneNumberDescriptor());
addDescriptor(buildProjectDescriptor());
addDescriptor(buildSmallProjectDescriptor());
}
@Override
public void applyLogin() {
DatabaseLogin login = new DatabaseLogin();
setDatasourceLogin(login);
}
public ClassDescriptor buildAddressDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(org.eclipse.persistence.testing.models.employee.domain.Address.class);
descriptor.addTableName("ADDRESS TABLE");
descriptor.addPrimaryKeyFieldName("ADDRESS TABLE.ADDRESS_ID");
// Descriptor Properties.
descriptor.useSoftCacheWeakIdentityMap();
descriptor.setIdentityMapSize(100);
descriptor.useRemoteSoftCacheWeakIdentityMap();
descriptor.setRemoteIdentityMapSize(100);
descriptor.setSequenceNumberFieldName("ADDRESS TABLE.ADDRESS_ID");
descriptor.setSequenceNumberName("ADDRESS_SEQ");
descriptor.setAlias("Address");
// Cache Invalidation Policy
// Query Manager.
descriptor.getQueryManager().checkCacheForDoesExist();
descriptor.getQueryManager().setQueryTimeout(0);
// Named Queries.
// Event Manager.
// Mappings.
DirectToFieldMapping cityMapping = new DirectToFieldMapping();
cityMapping.setAttributeName("city");
cityMapping.setFieldName("ADDRESS TABLE.CITY");
descriptor.addMapping(cityMapping);
DirectToFieldMapping countryMapping = new DirectToFieldMapping();
countryMapping.setAttributeName("country");
countryMapping.setFieldName("ADDRESS TABLE.COUNTRY");
descriptor.addMapping(countryMapping);
DirectToFieldMapping idMapping = new DirectToFieldMapping();
idMapping.setAttributeName("id");
idMapping.setFieldName("ADDRESS TABLE.ADDRESS_ID");
descriptor.addMapping(idMapping);
DirectToFieldMapping postalCodeMapping = new DirectToFieldMapping();
postalCodeMapping.setAttributeName("postalCode");
postalCodeMapping.setFieldName("ADDRESS TABLE.P_CODE");
descriptor.addMapping(postalCodeMapping);
DirectToFieldMapping provinceMapping = new DirectToFieldMapping();
provinceMapping.setAttributeName("province");
provinceMapping.setFieldName("ADDRESS TABLE.PROVINCE");
descriptor.addMapping(provinceMapping);
DirectToFieldMapping streetMapping = new DirectToFieldMapping();
streetMapping.setAttributeName("street");
streetMapping.setFieldName("ADDRESS TABLE.STREET");
descriptor.addMapping(streetMapping);
return descriptor;
}
public ClassDescriptor buildEmployeeDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(org.eclipse.persistence.testing.models.employee.domain.Employee.class);
descriptor.addTableName("EMPLOYEE TABLE");
descriptor.addTableName("SALARY TABLE");
descriptor.addPrimaryKeyFieldName("EMPLOYEE TABLE.EMP_ID");
// Interface Properties.
descriptor.getInterfacePolicy().addParentInterface(org.eclipse.persistence.testing.models.employee.interfaces.Employee.class);
// Descriptor Properties.
descriptor.useSoftCacheWeakIdentityMap();
descriptor.setIdentityMapSize(100);
descriptor.useRemoteSoftCacheWeakIdentityMap();
descriptor.setRemoteIdentityMapSize(100);
descriptor.setSequenceNumberFieldName("EMPLOYEE TABLE.EMP_ID");
descriptor.setSequenceNumberName("EMP_SEQ");
VersionLockingPolicy lockingPolicy = new VersionLockingPolicy();
lockingPolicy.setWriteLockFieldName("EMPLOYEE TABLE.VERSION");
descriptor.setOptimisticLockingPolicy(lockingPolicy);
descriptor.setAlias("Employee");
// Cache Invalidation Policy
// Query Manager.
descriptor.getQueryManager().checkCacheForDoesExist();
descriptor.getQueryManager().setQueryTimeout(0);
// Named Queries.
// Event Manager.
// Mappings.
DirectToFieldMapping firstNameMapping = new DirectToFieldMapping();
firstNameMapping.setAttributeName("firstName");
firstNameMapping.setFieldName("EMPLOYEE TABLE.F_NAME");
firstNameMapping.setNullValue("");
descriptor.addMapping(firstNameMapping);
DirectToFieldMapping idMapping = new DirectToFieldMapping();
idMapping.setAttributeName("id");
idMapping.setFieldName("EMPLOYEE TABLE.EMP_ID");
descriptor.addMapping(idMapping);
DirectToFieldMapping lastNameMapping = new DirectToFieldMapping();
lastNameMapping.setAttributeName("lastName");
lastNameMapping.setFieldName("EMPLOYEE TABLE.L_NAME");
lastNameMapping.setNullValue("");
descriptor.addMapping(lastNameMapping);
DirectToFieldMapping salaryMapping = new DirectToFieldMapping();
salaryMapping.setAttributeName("salary");
salaryMapping.setFieldName("SALARY TABLE.SALARY");
descriptor.addMapping(salaryMapping);
DirectToFieldMapping genderMapping = new DirectToFieldMapping();
genderMapping.setAttributeName("gender");
genderMapping.setFieldName("EMPLOYEE TABLE.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 TABLE.START_TIME", "getStartTime");
normalHoursMapping.addFieldTransformation("EMPLOYEE TABLE.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 TABLE.END_DATE", "endDate->DIRECT");
periodMapping.addFieldNameTranslation("EMPLOYEE TABLE.START_DATE", "startDate->DIRECT");
descriptor.addMapping(periodMapping);
DirectCollectionMapping responsibilitiesListMapping = new DirectCollectionMapping();
responsibilitiesListMapping.setAttributeName("responsibilitiesList");
responsibilitiesListMapping.useBasicIndirection();
responsibilitiesListMapping.setReferenceTableName("RESPONS TABLE");
responsibilitiesListMapping.setDirectFieldName("RESPONS TABLE.DESCRIP");
responsibilitiesListMapping.addReferenceKeyFieldName("RESPONS TABLE.EMP_ID", "EMPLOYEE TABLE.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 TABLE.ADDR_ID", "ADDRESS TABLE.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 TABLE.MANAGER_ID", "EMPLOYEE TABLE.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 TABLE.MANAGER_ID", "EMPLOYEE TABLE.EMP_ID");
descriptor.addMapping(managedEmployeesMapping);
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 NUM.EMP_ID", "EMPLOYEE TABLE.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 TABLE.EMP_ID");
projectsMapping.addTargetRelationKeyFieldName("PROJ EMP.PROJ_ID", "PROJECT TABLE.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("L PROJECT TABLE");
// 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();
descriptor.getQueryManager().setQueryTimeout(0);
// Named Queries.
// Event Manager.
// Mappings.
DirectToFieldMapping budgetMapping = new DirectToFieldMapping();
budgetMapping.setAttributeName("budget");
budgetMapping.setFieldName("L PROJECT TABLE.BUDGET");
descriptor.addMapping(budgetMapping);
DirectToFieldMapping milestoneVersionMapping = new DirectToFieldMapping();
milestoneVersionMapping.setAttributeName("milestoneVersion");
milestoneVersionMapping.setFieldName("L PROJECT TABLE.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 NUM");
descriptor.addPrimaryKeyFieldName("PHONE NUM.EMP_ID");
descriptor.addPrimaryKeyFieldName("PHONE NUM.TYPE");
// Descriptor Properties.
descriptor.useSoftCacheWeakIdentityMap();
descriptor.setIdentityMapSize(100);
descriptor.useRemoteSoftCacheWeakIdentityMap();
descriptor.setRemoteIdentityMapSize(100);
descriptor.setAlias("PhoneNumber");
// Cache Invalidation Policy
// Query Manager.
descriptor.getQueryManager().checkCacheForDoesExist();
descriptor.getQueryManager().setQueryTimeout(0);
// 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.setQueryTimeout(-1);
namedQuery0.setShouldUseWrapperPolicy(true);
namedQuery0.setShouldMaintainCache(true);
namedQuery0.setShouldPrepare(true);
namedQuery0.setMaxRows(0);
namedQuery0.setShouldRefreshIdentityMapResult(false);
namedQuery0.setCacheUsage(2);
namedQuery0.setLockMode((short)0);
namedQuery0.setShouldRefreshRemoteIdentityMapResult(false);
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 NUM.EMP_ID");
// Mappings.
DirectToFieldMapping areaCodeMapping = new DirectToFieldMapping();
areaCodeMapping.setAttributeName("areaCode");
areaCodeMapping.setFieldName("PHONE NUM.AREA_CODE");
descriptor.addMapping(areaCodeMapping);
DirectToFieldMapping numberMapping = new DirectToFieldMapping();
numberMapping.setAttributeName("number");
numberMapping.setFieldName("PHONE NUM.P_NUMBER");
descriptor.addMapping(numberMapping);
DirectToFieldMapping typeMapping = new DirectToFieldMapping();
typeMapping.setAttributeName("type");
typeMapping.setFieldName("PHONE NUM.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 NUM.EMP_ID", "EMPLOYEE TABLE.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 TABLE");
descriptor.addPrimaryKeyFieldName("PROJECT TABLE.PROJ_ID");
// Inheritance Properties.
descriptor.getInheritancePolicy().setClassIndicatorFieldName("PROJECT TABLE.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.useRemoteSoftCacheWeakIdentityMap();
descriptor.setRemoteIdentityMapSize(100);
descriptor.setSequenceNumberFieldName("PROJECT TABLE.PROJ_ID");
descriptor.setSequenceNumberName("PROJ_SEQ");
VersionLockingPolicy lockingPolicy = new VersionLockingPolicy();
lockingPolicy.setWriteLockFieldName("PROJECT TABLE.VERSION");
descriptor.setOptimisticLockingPolicy(lockingPolicy);
descriptor.setAlias("Project");
// Cache Invalidation Policy
// Query Manager.
descriptor.getQueryManager().checkCacheForDoesExist();
descriptor.getQueryManager().setQueryTimeout(0);
// Named Queries.
// Event Manager.
// Mappings.
DirectToFieldMapping descriptionMapping = new DirectToFieldMapping();
descriptionMapping.setAttributeName("description");
descriptionMapping.setFieldName("PROJECT TABLE.DESCRIP");
descriptionMapping.setNullValue("");
descriptor.addMapping(descriptionMapping);
DirectToFieldMapping idMapping = new DirectToFieldMapping();
idMapping.setAttributeName("id");
idMapping.setFieldName("PROJECT TABLE.PROJ_ID");
descriptor.addMapping(idMapping);
DirectToFieldMapping nameMapping = new DirectToFieldMapping();
nameMapping.setAttributeName("name");
nameMapping.setFieldName("PROJECT TABLE.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 TABLE.LEADER_ID", "EMPLOYEE TABLE.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 TABLE");
// 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();
descriptor.getQueryManager().setQueryTimeout(0);
// Named Queries.
// Event Manager.
return descriptor;
}
}