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