blob: 560c9835440d8c257922e2f224c5ebfdaaa43278 [file] [log] [blame]
/*
* Copyright (c) 2011, 2020 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:
// tware - test for bug 324459
package org.eclipse.persistence.testing.tests.unitofwork;
import org.eclipse.persistence.descriptors.RelationalDescriptor;
import org.eclipse.persistence.indirection.ValueHolder;
import org.eclipse.persistence.indirection.ValueHolderInterface;
import org.eclipse.persistence.mappings.OneToOneMapping;
import org.eclipse.persistence.tools.schemaframework.TableDefinition;
public class ConcurrentPhoneNumber {
protected String type;
protected String areaCode;
protected String number;
protected ValueHolderInterface owner;
public ConcurrentPhoneNumber(){
owner = new ValueHolder();
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public ConcurrentPerson getOwner() {
return (ConcurrentPerson)owner.getValue();
}
public void setOwner(ConcurrentPerson owner) {
this.owner.setValue(owner);
}
public ValueHolderInterface getOwnerVH() {
return owner;
}
public void setOwnerVH(ValueHolderInterface owner) {
this.owner = owner;
}
public static RelationalDescriptor descriptor() {
RelationalDescriptor descriptor = new RelationalDescriptor();
/* First define the class, table and descriptor properties. */
descriptor.setJavaClass(ConcurrentPhoneNumber.class);
descriptor.setTableName("CONCURRENT_PHONE");
descriptor.addPrimaryKeyFieldName("CONCURRENT_PHONE.EMP_ID");
descriptor.addPrimaryKeyFieldName("CONCURRENT_PHONE.TYPE");
/* Next define the attribute mappings. */
descriptor.addDirectMapping("type", "TYPE");
descriptor.addDirectMapping("areaCode", "AREA_CODE");
descriptor.addDirectMapping("number", "PHONE_NUM");
OneToOneMapping ownerMapping = new OneToOneMapping();
ownerMapping.setAttributeName("owner");
ownerMapping.setReferenceClass(ConcurrentPerson.class);
ownerMapping.setGetMethodName("getOwnerVH");
ownerMapping.setSetMethodName("setOwnerVH");
ownerMapping.useBasicIndirection();
ownerMapping.addForeignKeyFieldName("CONCURRENT_PHONE.EMP_ID", "CONCURRENT_EMP.ID");
descriptor.addMapping(ownerMapping);
return descriptor;
}
/**
* Return a platform independant definition of the database table.
*/
public static TableDefinition tableDefinition() {
TableDefinition definition = new TableDefinition();
definition.setName("CONCURRENT_PHONE");
definition.addIdentityField("TYPE", java.lang.String.class, 20);
definition.addField("AREA_CODE", String.class, 20);
definition.addField("PHONE_NUM", java.lang.String.class, 20);
definition.addField("EMP_ID", java.math.BigDecimal.class, 15);
return definition;
}
}