/******************************************************************************* * 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.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(); } 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); } }