blob: 4eef283a614464b0e7d1a91e1cb177056a02a0f9 [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.clientserver;
import org.eclipse.persistence.sessions.*;
import org.eclipse.persistence.descriptors.*;
import org.eclipse.persistence.mappings.*;
public class ClientServerEmployeeProject extends Project {
public ClientServerEmployeeProject() {
setName("Employee");
applyLogin();
buildEmployeeDescriptor();
buildPhoneNumberDescriptor();
}
@Override
public void applyLogin() {
DatabaseLogin login = new DatabaseLogin();
setLogin(login);
}
public void buildEmployeeDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(EmployeeForClientServerSession.class);
descriptor.addTableName("EMPL");
descriptor.addPrimaryKeyFieldName("EMPL.EMP_ID");
// RelationalDescriptor properties.
descriptor.useFullIdentityMap();
descriptor.setIdentityMapSize(100);
// Query manager.
descriptor.getQueryManager().checkCacheForDoesExist();
// Mappings.
DirectToFieldMapping firstNameMapping = new DirectToFieldMapping();
firstNameMapping.setAttributeName("firstName");
firstNameMapping.setFieldName("EMPL.F_NAME");
descriptor.addMapping(firstNameMapping);
DirectToFieldMapping idMapping = new DirectToFieldMapping();
idMapping.setAttributeName("id");
idMapping.setFieldName("EMPL.EMP_ID");
descriptor.addMapping(idMapping);
DirectToFieldMapping lastNameMapping = new DirectToFieldMapping();
lastNameMapping.setAttributeName("lastName");
lastNameMapping.setFieldName("EMPL.L_NAME");
lastNameMapping.setNullValue("");
descriptor.addMapping(lastNameMapping);
OneToManyMapping phoneNumbersMapping = new OneToManyMapping();
phoneNumbersMapping.setAttributeName("phoneNumbers");
phoneNumbersMapping.setReferenceClass(PhoneNumber.class);
phoneNumbersMapping.useBasicIndirection();
phoneNumbersMapping.privateOwnedRelationship();
phoneNumbersMapping.addTargetForeignKeyFieldName("PHONE.EMP_ID", "EMPL.EMP_ID");
descriptor.addMapping(phoneNumbersMapping);
addDescriptor(descriptor);
}
public void buildPhoneNumberDescriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(PhoneNumber.class);
descriptor.addTableName("PHONE");
descriptor.addPrimaryKeyFieldName("PHONE.EMP_ID");
descriptor.addPrimaryKeyFieldName("PHONE.TYPE");
// RelationalDescriptor properties.
descriptor.useFullIdentityMap();
descriptor.setIdentityMapSize(100);
//descriptor.setAmendmentClass(org.eclipse.persistence.testing.models.employee.relational.EmployeeSystem.class);
//descriptor.setAmendmentMethodName("modifyPhoneDescriptor");
// Query manager.
descriptor.getQueryManager().checkCacheForDoesExist();
// Event manager.
// Query keys.
descriptor.addDirectQueryKey("id", "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(EmployeeForClientServerSession.class);
ownerMapping.useBasicIndirection();
ownerMapping.addForeignKeyFieldName("PHONE.EMP_ID", "EMPL.EMP_ID");
descriptor.addMapping(ownerMapping);
//descriptor.applyAmendmentMethod();
addDescriptor(descriptor);
}
}