/******************************************************************************* | |
* Copyright (c) 1998, 2013 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.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()); | |
} | |
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; | |
} | |
} |