/******************************************************************************* * 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.tests.unitofwork.changeflag.model; import org.eclipse.persistence.descriptors.ClassDescriptor; import org.eclipse.persistence.descriptors.RelationalDescriptor; import org.eclipse.persistence.descriptors.VersionLockingPolicy; import org.eclipse.persistence.descriptors.changetracking.AttributeChangeTrackingPolicy; import org.eclipse.persistence.mappings.AggregateObjectMapping; import org.eclipse.persistence.mappings.DirectToFieldMapping; import org.eclipse.persistence.mappings.converters.ObjectTypeConverter; import org.eclipse.persistence.sessions.DatabaseLogin; /** * 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 ALCTEmployeeProject extends org.eclipse.persistence.sessions.Project { public ALCTEmployeeProject() { setName("Employee"); applyLogin(); addDescriptor(buildEmployeeDescriptor()); addDescriptor(buildEmploymentPeriodDescriptor()); } 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"); // Configuration Properties. login.setShouldBindAllParameters(false); login.setShouldCacheAllStatements(false); login.setUsesByteArrayBinding(true); login.setUsesStringBinding(false); if (login.shouldUseByteArrayBinding()) { // Can only be used with binding. login.setUsesStreamsForBinding(false); } login.setShouldForceFieldNamesToUpperCase(false); login.setShouldOptimizeDataConversion(true); login.setShouldTrimStrings(true); login.setUsesBatchWriting(false); if (login.shouldUseBatchWriting()) { // Can only be used with batch writing. login.setUsesJDBCBatchWriting(true); } login.setUsesExternalConnectionPooling(false); login.setUsesExternalTransactionController(false); setDatasourceLogin(login); } public ClassDescriptor buildEmployeeDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClass(ALCTEmployee.class); descriptor.addTableName("ALCTEMPLOYEE"); descriptor.addPrimaryKeyFieldName("ALCTEMPLOYEE.EMP_ID"); // Descriptor Properties. descriptor.useSoftCacheWeakIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.useRemoteSoftCacheWeakIdentityMap(); descriptor.setRemoteIdentityMapSize(100); descriptor.setSequenceNumberFieldName("ALCTEMPLOYEE.EMP_ID"); descriptor.setSequenceNumberName("EMP_SEQ"); VersionLockingPolicy lockingPolicy = new VersionLockingPolicy(); lockingPolicy.setWriteLockFieldName("ALCTEMPLOYEE.VERSION"); descriptor.setOptimisticLockingPolicy(lockingPolicy); descriptor.setAlias("ALCTEmployee"); //Change Tracking descriptor.setObjectChangePolicy(new AttributeChangeTrackingPolicy()); // 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("ALCTEMPLOYEE.F_NAME"); firstNameMapping.setNullValue(""); descriptor.addMapping(firstNameMapping); DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("ALCTEMPLOYEE.EMP_ID"); descriptor.addMapping(idMapping); DirectToFieldMapping lastNameMapping = new DirectToFieldMapping(); lastNameMapping.setAttributeName("lastName"); lastNameMapping.setFieldName("ALCTEMPLOYEE.L_NAME"); lastNameMapping.setNullValue(""); descriptor.addMapping(lastNameMapping); DirectToFieldMapping genderMapping = new DirectToFieldMapping(); genderMapping.setAttributeName("gender"); genderMapping.setFieldName("ALCTEMPLOYEE.GENDER"); ObjectTypeConverter genderMappingConverter = new ObjectTypeConverter(); genderMappingConverter.addConversionValue("F", "Female"); genderMappingConverter.addConversionValue("M", "Male"); genderMapping.setConverter(genderMappingConverter); descriptor.addMapping(genderMapping); AggregateObjectMapping periodMapping = new AggregateObjectMapping(); periodMapping.setAttributeName("period"); periodMapping.setReferenceClass(ALCTEmploymentPeriod.class); periodMapping.setIsNullAllowed(true); periodMapping.addFieldNameTranslation("ALCTEMPLOYEE.END_DATE", "endDate->DIRECT"); periodMapping.addFieldNameTranslation("ALCTEMPLOYEE.START_DATE", "startDate->DIRECT"); descriptor.addMapping(periodMapping); return descriptor; } public ClassDescriptor buildEmploymentPeriodDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.descriptorIsAggregate(); descriptor.setJavaClass(ALCTEmploymentPeriod.class); // Descriptor Properties. descriptor.setAlias("EmploymentPeriod"); //Change Tracking descriptor.setObjectChangePolicy(new AttributeChangeTrackingPolicy()); // 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; } }