blob: 1ca3e6397782adb4ce98b33d9783c20e5b778580 [file] [log] [blame]
/*
* Copyright (c) 1998, 2019 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.isolatedsession;
import org.eclipse.persistence.config.CacheIsolationType;
import org.eclipse.persistence.descriptors.ClassDescriptor;
import org.eclipse.persistence.descriptors.RelationalDescriptor;
import org.eclipse.persistence.descriptors.VersionLockingPolicy;
import org.eclipse.persistence.expressions.ExpressionBuilder;
import org.eclipse.persistence.mappings.AggregateObjectMapping;
import org.eclipse.persistence.mappings.DirectCollectionMapping;
import org.eclipse.persistence.mappings.DirectToFieldMapping;
import org.eclipse.persistence.mappings.OneToManyMapping;
import org.eclipse.persistence.mappings.OneToOneMapping;
import org.eclipse.persistence.mappings.TransformationMapping;
import org.eclipse.persistence.mappings.converters.ObjectTypeConverter;
import org.eclipse.persistence.queries.ReadObjectQuery;
import org.eclipse.persistence.sessions.DatabaseLogin;
import org.eclipse.persistence.sessions.Project;
/**
* This class was generated by the TopLink project class generator.
* It stores the meta-data (descriptors) that define the TopLink mappings.
* @see org.eclipse.persistence.sessions.factories.ProjectClassGenerator
*/
public class IsolatedEmployeeProject extends Project {
public IsolatedEmployeeProject() {
setName("IsolatedEmployee");
applyLogin();
addDescriptor(buildAddressDescriptor());
addDescriptor(buildEmployeeDescriptor());
addDescriptor(buildEmploymentPeriodDescriptor());
addDescriptor(buildPhoneNumberDescriptor());
addDescriptor(buildIsolatedChildDescriptor());
addDescriptor(buildIsolatedParentDescriptor());
addDescriptor(buildIsolatedBoneClassDescriptor());
addDescriptor(buildIsolatedDogClassDescriptor());
}
@Override
public void applyLogin() {
DatabaseLogin login = new DatabaseLogin();
setLogin(login);
}
public RelationalDescriptor buildAddressDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(org.eclipse.persistence.testing.tests.isolatedsession.IsolatedAddress.class);
descriptor.addTableName("ISOLATED_ADDRESS");
descriptor.addPrimaryKeyFieldName("ISOLATED_ADDRESS.ADDRESS_ID");
// Descriptor properties.
descriptor.setSequenceNumberFieldName("ADDRESS_ID");
descriptor.setSequenceNumberName("ADDRESS_SEQ");
// Query manager.
descriptor.getQueryManager().checkCacheForDoesExist();
// Event manager.
// Mappings.
DirectToFieldMapping cityMapping = new DirectToFieldMapping();
cityMapping.setAttributeName("city");
cityMapping.setFieldName("ISOLATED_ADDRESS.CITY");
descriptor.addMapping(cityMapping);
DirectToFieldMapping countryMapping = new DirectToFieldMapping();
countryMapping.setAttributeName("country");
countryMapping.setFieldName("ISOLATED_ADDRESS.COUNTRY");
descriptor.addMapping(countryMapping);
DirectToFieldMapping idMapping = new DirectToFieldMapping();
idMapping.setAttributeName("id");
idMapping.setFieldName("ISOLATED_ADDRESS.ADDRESS_ID");
descriptor.addMapping(idMapping);
DirectToFieldMapping postalCodeMapping = new DirectToFieldMapping();
postalCodeMapping.setAttributeName("postalCode");
postalCodeMapping.setFieldName("ISOLATED_ADDRESS.P_CODE");
descriptor.addMapping(postalCodeMapping);
DirectToFieldMapping provinceMapping = new DirectToFieldMapping();
provinceMapping.setAttributeName("province");
provinceMapping.setFieldName("ISOLATED_ADDRESS.PROVINCE");
descriptor.addMapping(provinceMapping);
DirectToFieldMapping streetMapping = new DirectToFieldMapping();
streetMapping.setAttributeName("street");
streetMapping.setFieldName("ISOLATED_ADDRESS.STREET");
descriptor.addMapping(streetMapping);
return descriptor;
}
public RelationalDescriptor buildEmployeeDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(org.eclipse.persistence.testing.tests.isolatedsession.IsolatedEmployee.class);
descriptor.addTableName("ISOLATED_EMPLOYEE");
descriptor.addTableName("ISOLATED_SALARY");
descriptor.addPrimaryKeyFieldName("ISOLATED_EMPLOYEE.EMP_ID");
// Descriptor properties.
descriptor.setSequenceNumberFieldName("EMP_ID");
descriptor.setSequenceNumberName("EMP_SEQ");
VersionLockingPolicy lockingPolicy = new VersionLockingPolicy();
lockingPolicy.setWriteLockFieldName("VERSION");
descriptor.setOptimisticLockingPolicy(lockingPolicy);
descriptor.setCacheIsolation(CacheIsolationType.ISOLATED);
// Tests depend on uow merge.
descriptor.setUnitOfWorkCacheIsolationLevel(RelationalDescriptor.ISOLATE_NEW_DATA_AFTER_TRANSACTION);
// Query manager.
descriptor.getQueryManager().checkCacheForDoesExist();
// Event manager.
// Mappings.
DirectToFieldMapping firstNameMapping = new DirectToFieldMapping();
firstNameMapping.setAttributeName("firstName");
firstNameMapping.setFieldName("ISOLATED_EMPLOYEE.F_NAME");
firstNameMapping.setNullValue("");
descriptor.addMapping(firstNameMapping);
DirectToFieldMapping idMapping = new DirectToFieldMapping();
idMapping.setAttributeName("id");
idMapping.setFieldName("ISOLATED_EMPLOYEE.EMP_ID");
descriptor.addMapping(idMapping);
DirectToFieldMapping lastNameMapping = new DirectToFieldMapping();
lastNameMapping.setAttributeName("lastName");
lastNameMapping.setFieldName("ISOLATED_EMPLOYEE.L_NAME");
lastNameMapping.setNullValue("");
descriptor.addMapping(lastNameMapping);
DirectToFieldMapping salaryMapping = new DirectToFieldMapping();
salaryMapping.setAttributeName("salary");
salaryMapping.setFieldName("ISOLATED_SALARY.SALARY");
descriptor.addMapping(salaryMapping);
DirectToFieldMapping genderMapping = new DirectToFieldMapping();
ObjectTypeConverter genderConverter = new ObjectTypeConverter();
genderMapping.setAttributeName("gender");
genderMapping.setFieldName("ISOLATED_EMPLOYEE.GENDER");
genderConverter.addConversionValue("M", "Male");
genderConverter.addConversionValue("F", "Female");
genderMapping.setConverter(genderConverter);
descriptor.addMapping(genderMapping);
TransformationMapping normalHoursMapping = new TransformationMapping();
normalHoursMapping.setAttributeName("normalHours");
normalHoursMapping.setAttributeTransformation("buildNormalHours");
normalHoursMapping.addFieldTransformation("ISOLATED_EMPLOYEE.START_TIME", "getStartTime");
normalHoursMapping.addFieldTransformation("ISOLATED_EMPLOYEE.END_TIME", "getEndTime");
descriptor.addMapping(normalHoursMapping);
AggregateObjectMapping periodMapping = new AggregateObjectMapping();
periodMapping.setAttributeName("period");
periodMapping.setReferenceClass(org.eclipse.persistence.testing.tests.isolatedsession.IsolatedEmploymentPeriod.class);
periodMapping.setIsNullAllowed(true);
descriptor.addMapping(periodMapping);
DirectCollectionMapping responsibilitiesListMapping = new DirectCollectionMapping();
responsibilitiesListMapping.setAttributeName("responsibilitiesList");
responsibilitiesListMapping.useBasicIndirection();
responsibilitiesListMapping.setReferenceTableName("ISOLATED_RESPONS");
responsibilitiesListMapping.setDirectFieldName("ISOLATED_RESPONS.DESCRIP");
responsibilitiesListMapping.addReferenceKeyFieldName("ISOLATED_RESPONS.EMP_ID", "ISOLATED_EMPLOYEE.EMP_ID");
descriptor.addMapping(responsibilitiesListMapping);
OneToOneMapping addressMapping = new OneToOneMapping();
addressMapping.setAttributeName("address");
addressMapping.setReferenceClass(org.eclipse.persistence.testing.tests.isolatedsession.IsolatedAddress.class);
addressMapping.useBasicIndirection();
addressMapping.privateOwnedRelationship();
addressMapping.addForeignKeyFieldName("ISOLATED_EMPLOYEE.ADDR_ID", "ISOLATED_ADDRESS.ADDRESS_ID");
descriptor.addMapping(addressMapping);
OneToOneMapping managerMapping = new OneToOneMapping();
managerMapping.setAttributeName("manager");
managerMapping.setReferenceClass(IsolatedEmployee.class);
managerMapping.useBasicIndirection();
managerMapping.addForeignKeyFieldName("ISOLATED_EMPLOYEE.MANAGER_ID", "ISOLATED_EMPLOYEE.EMP_ID");
descriptor.addMapping(managerMapping);
OneToManyMapping managedEmployeesMapping = new OneToManyMapping();
managedEmployeesMapping.setAttributeName("managedEmployees");
managedEmployeesMapping.setReferenceClass(IsolatedEmployee.class);
managedEmployeesMapping.useBasicIndirection();
managedEmployeesMapping.addTargetForeignKeyFieldName("ISOLATED_EMPLOYEE.MANAGER_ID", "ISOLATED_EMPLOYEE.EMP_ID");
descriptor.addMapping(managedEmployeesMapping);
OneToManyMapping phoneNumbersMapping = new OneToManyMapping();
phoneNumbersMapping.setAttributeName("phoneNumbers");
phoneNumbersMapping.setReferenceClass(IsolatedPhoneNumber.class);
phoneNumbersMapping.useBasicIndirection();
phoneNumbersMapping.privateOwnedRelationship();
phoneNumbersMapping.addTargetForeignKeyFieldName("ISOLATED_PHONE.EMP_ID", "ISOLATED_EMPLOYEE.EMP_ID");
descriptor.addMapping(phoneNumbersMapping);
return descriptor;
}
public RelationalDescriptor buildEmploymentPeriodDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.descriptorIsAggregate();
descriptor.setJavaClass(org.eclipse.persistence.testing.tests.isolatedsession.IsolatedEmploymentPeriod.class);
// Descriptor properties.
// Query manager.
// Event manager.
// Mappings.
DirectToFieldMapping endDateMapping = new DirectToFieldMapping();
endDateMapping.setAttributeName("endDate");
endDateMapping.setFieldName("END_DATE");
descriptor.addMapping(endDateMapping);
DirectToFieldMapping startDateMapping = new DirectToFieldMapping();
startDateMapping.setAttributeName("startDate");
startDateMapping.setFieldName("START_DATE");
descriptor.addMapping(startDateMapping);
return descriptor;
}
public RelationalDescriptor buildPhoneNumberDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(org.eclipse.persistence.testing.tests.isolatedsession.IsolatedPhoneNumber.class);
descriptor.addTableName("ISOLATED_PHONE");
descriptor.addPrimaryKeyFieldName("ISOLATED_PHONE.EMP_ID");
descriptor.addPrimaryKeyFieldName("ISOLATED_PHONE.TYPE");
// Descriptor properties.
descriptor.setCacheIsolation(CacheIsolationType.ISOLATED);
// Tests depend on uow merge.
descriptor.setUnitOfWorkCacheIsolationLevel(RelationalDescriptor.ISOLATE_NEW_DATA_AFTER_TRANSACTION);
// Query manager.
descriptor.getQueryManager().checkCacheForDoesExist();
// Event manager.
// Query keys.
descriptor.addDirectQueryKey("id", "EMP_ID");
// Mappings.
DirectToFieldMapping areaCodeMapping = new DirectToFieldMapping();
areaCodeMapping.setAttributeName("areaCode");
areaCodeMapping.setFieldName("ISOLATED_PHONE.AREA_CODE");
descriptor.addMapping(areaCodeMapping);
DirectToFieldMapping numberMapping = new DirectToFieldMapping();
numberMapping.setAttributeName("number");
numberMapping.setFieldName("ISOLATED_PHONE.P_NUMBER");
descriptor.addMapping(numberMapping);
DirectToFieldMapping typeMapping = new DirectToFieldMapping();
typeMapping.setAttributeName("type");
typeMapping.setFieldName("ISOLATED_PHONE.TYPE");
descriptor.addMapping(typeMapping);
OneToOneMapping ownerMapping = new OneToOneMapping();
ownerMapping.setAttributeName("owner");
ownerMapping.setReferenceClass(org.eclipse.persistence.testing.tests.isolatedsession.IsolatedEmployee.class);
ownerMapping.useBasicIndirection();
ownerMapping.addForeignKeyFieldName("ISOLATED_PHONE.EMP_ID", "ISOLATED_EMPLOYEE.EMP_ID");
descriptor.addMapping(ownerMapping);
descriptor.applyAmendmentMethod();
return descriptor;
}
public RelationalDescriptor buildIsolatedParentDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(IsolatedParent.class);
descriptor.addTableName("ISOLATED_PARENT");
descriptor.addPrimaryKeyFieldName("ISOLATED_PARENT.ID");
// ClassDescriptor Properties.
descriptor.useFullIdentityMap();
descriptor.setIdentityMapSize(100);
descriptor.useRemoteFullIdentityMap();
descriptor.setRemoteIdentityMapSize(100);
descriptor.setSequenceNumberFieldName("ISOLATED_PARENT.ID");
descriptor.setSequenceNumberName("PARENT_SEQ");
descriptor.alwaysConformResultsInUnitOfWork(); // IMPORTANT!
descriptor.setCacheIsolation(CacheIsolationType.ISOLATED);
descriptor.setAlias("IsolatedParent");
descriptor.setCacheSynchronizationType(ClassDescriptor.DO_NOT_SEND_CHANGES);
descriptor.setAmendmentClass(IsolatedParent.class);
descriptor.setAmendmentMethodName("afterLoad");
// Query Manager.
descriptor.getQueryManager().checkCacheForDoesExist();
// Named Queries.
// Named Query -- findParentBySerial
ReadObjectQuery namedQuery0 = new ReadObjectQuery(IsolatedParent.class);
namedQuery0.setName("findParentBySerial");
namedQuery0.setShouldBindAllParameters(true);
ExpressionBuilder expBuilder0 = namedQuery0.getExpressionBuilder();
namedQuery0.setSelectionCriteria(expBuilder0.get("serial").equal(expBuilder0.getParameter("serial_p")));
namedQuery0.addArgument("serial_p", java.lang.String.class);
descriptor.getQueryManager().addQuery("findParentBySerial", namedQuery0);
// Event Manager.
// Mappings.
DirectToFieldMapping idMapping = new DirectToFieldMapping();
idMapping.setAttributeName("id");
idMapping.setFieldName("ISOLATED_PARENT.ID");
descriptor.addMapping(idMapping);
DirectToFieldMapping serialMapping = new DirectToFieldMapping();
serialMapping.setAttributeName("serial");
serialMapping.setFieldName("ISOLATED_PARENT.SERIAL");
descriptor.addMapping(serialMapping);
OneToManyMapping childrenMapping = new OneToManyMapping();
childrenMapping.setAttributeName("children");
childrenMapping.setReferenceClass(IsolatedChild.class);
childrenMapping.useTransparentCollection();
childrenMapping.useCollectionClass(org.eclipse.persistence.indirection.IndirectList.class);
childrenMapping.addTargetForeignKeyFieldName("ISOLATED_CHILD.PARENT_ID", "ISOLATED_PARENT.ID");
childrenMapping.privateOwnedRelationship();
descriptor.addMapping(childrenMapping);
return descriptor;
}
public RelationalDescriptor buildIsolatedChildDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(IsolatedChild.class);
descriptor.addTableName("ISOLATED_CHILD");
descriptor.addPrimaryKeyFieldName("ISOLATED_CHILD.ID");
// ClassDescriptor Properties.
descriptor.useFullIdentityMap();
descriptor.setIdentityMapSize(100);
descriptor.useRemoteFullIdentityMap();
descriptor.setRemoteIdentityMapSize(100);
descriptor.setSequenceNumberFieldName("ISOLATED_CHILD.ID");
descriptor.setSequenceNumberName("CHILD_SEQ");
descriptor.alwaysConformResultsInUnitOfWork(); // IMPORTANT!
descriptor.setCacheIsolation(CacheIsolationType.ISOLATED);
descriptor.setAlias("IsolatedChild");
descriptor.setCacheSynchronizationType(ClassDescriptor.DO_NOT_SEND_CHANGES);
// Query Manager.
descriptor.getQueryManager().checkCacheForDoesExist();
// Event Manager.
// Mappings.
DirectToFieldMapping idMapping = new DirectToFieldMapping();
idMapping.setAttributeName("id");
idMapping.setFieldName("ISOLATED_CHILD.ID");
descriptor.addMapping(idMapping);
DirectToFieldMapping serialMapping = new DirectToFieldMapping();
serialMapping.setAttributeName("serial");
serialMapping.setFieldName("ISOLATED_CHILD.SERIAL");
descriptor.addMapping(serialMapping);
DirectToFieldMapping deletedMapping = new DirectToFieldMapping();
deletedMapping.setAttributeName("deleted");
deletedMapping.setFieldName("ISOLATED_CHILD.DELETED");
descriptor.addMapping(deletedMapping);
OneToOneMapping parentMapping = new OneToOneMapping();
parentMapping.setAttributeName("parent");
parentMapping.setReferenceClass(IsolatedParent.class);
parentMapping.useBasicIndirection();
parentMapping.addForeignKeyFieldName("ISOLATED_CHILD.PARENT_ID", "ISOLATED_PARENT.ID");
descriptor.addMapping(parentMapping);
return descriptor;
}
public ClassDescriptor buildIsolatedBoneClassDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(IsolatedBone.class);
descriptor.addTableName("ISOLATED_BONE");
descriptor.addPrimaryKeyFieldName("ISOLATED_BONE.ID");
// ClassDescriptor Properties.
descriptor.useFullIdentityMap();
descriptor.setIdentityMapSize(100);
descriptor.useRemoteFullIdentityMap();
descriptor.setRemoteIdentityMapSize(100);
descriptor.alwaysConformResultsInUnitOfWork();
descriptor.setCacheIsolation(CacheIsolationType.ISOLATED);
descriptor.setAlias("IsolatedBone");
descriptor.setCacheSynchronizationType(ClassDescriptor.DO_NOT_SEND_CHANGES);
// Query Manager.
descriptor.getQueryManager().checkCacheForDoesExist();
// Event Manager.
// Mappings.
DirectToFieldMapping colorMapping = new DirectToFieldMapping();
colorMapping.setAttributeName("color");
colorMapping.setFieldName("ISOLATED_BONE.COLOR");
descriptor.addMapping(colorMapping);
DirectToFieldMapping deletedMapping = new DirectToFieldMapping();
deletedMapping.setAttributeName("deleted");
deletedMapping.setFieldName("ISOLATED_BONE.DELETED");
descriptor.addMapping(deletedMapping);
DirectToFieldMapping idMapping = new DirectToFieldMapping();
idMapping.setAttributeName("id");
idMapping.setFieldName("ISOLATED_BONE.ID");
descriptor.addMapping(idMapping);
OneToOneMapping ownerMapping = new OneToOneMapping();
ownerMapping.setAttributeName("owner");
ownerMapping.setReferenceClass(IsolatedDog.class);
ownerMapping.useBasicIndirection();
ownerMapping.addForeignKeyFieldName("ISOLATED_BONE.DOG_ID", "ISOLATED_DOG.ID");
descriptor.addMapping(ownerMapping);
return descriptor;
}
public ClassDescriptor buildIsolatedDogClassDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(IsolatedDog.class);
descriptor.addTableName("ISOLATED_DOG");
descriptor.addPrimaryKeyFieldName("ISOLATED_DOG.ID");
// ClassDescriptor Properties.
descriptor.useFullIdentityMap();
descriptor.setIdentityMapSize(100);
descriptor.useRemoteFullIdentityMap();
descriptor.setRemoteIdentityMapSize(100);
descriptor.alwaysConformResultsInUnitOfWork();
descriptor.setCacheIsolation(CacheIsolationType.ISOLATED);
descriptor.setAlias("IsolatedDog");
descriptor.setAmendmentClass(IsolatedDog.class);
descriptor.setAmendmentMethodName("afterLoad");
descriptor.setCacheSynchronizationType(ClassDescriptor.DO_NOT_SEND_CHANGES);
// Query Manager.
descriptor.getQueryManager().checkCacheForDoesExist();
// Named Queries.
// Named Query -- findIsolatedDogByName
ReadObjectQuery namedQuery0 = new ReadObjectQuery(IsolatedDog.class);
namedQuery0.setName("findIsolatedDogByName");
namedQuery0.setShouldBindAllParameters(true);
ExpressionBuilder expBuilder0 = namedQuery0.getExpressionBuilder();
namedQuery0.setSelectionCriteria(expBuilder0.get("name").equal(expBuilder0.getParameter("dogName")));
namedQuery0.addArgument("dogName", java.lang.String.class);
descriptor.getQueryManager().addQuery("findIsolatedDogByName", namedQuery0);
// Event Manager.
// Mappings.
DirectToFieldMapping idMapping = new DirectToFieldMapping();
idMapping.setAttributeName("id");
idMapping.setFieldName("ISOLATED_DOG.ID");
descriptor.addMapping(idMapping);
DirectToFieldMapping nameMapping = new DirectToFieldMapping();
nameMapping.setAttributeName("name");
nameMapping.setFieldName("ISOLATED_DOG.NAME");
descriptor.addMapping(nameMapping);
OneToOneMapping boneMapping = new OneToOneMapping();
boneMapping.setAttributeName("bone");
boneMapping.setReferenceClass(IsolatedBone.class);
boneMapping.useBasicIndirection();
boneMapping.privateOwnedRelationship();
boneMapping.addTargetForeignKeyFieldName("ISOLATED_BONE.DOG_ID", "ISOLATED_DOG.ID");
descriptor.addMapping(boneMapping);
descriptor.applyAmendmentMethod();
return descriptor;
}
}