blob: 3e6caa5dcb02ee341d7e761523868aacccb6e6fb [file] [log] [blame]
/*
* Copyright (c) 1998, 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:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.models.jpa.performance2;
import org.eclipse.persistence.tools.schemaframework.*;
/**
* This class will create tables for the Employee model.
*/
public class EmployeeTableCreator extends TableCreator {
public EmployeeTableCreator() {
applyPROJECT();
buildADDRESSTable();
buildEMPLOYEETable();
buildSALARYTable();
buildEMAILTable();
buildEMP_JOBTable();
buildJOBTITLETable();
buildRESPONSTable();
buildSPROJECTTable();
buildLPROJECTTable();
buildPHONETable();
buildPROJ_EMPTable();
buildDEGREETable();
}
protected void applyPROJECT() {
setName("Employee");
}
protected void buildADDRESSTable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_ADDRESS");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("ADDRESS_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setUnique(false);
field.setIsIdentity(true);
tabledefinition.addField(field);
// SECTION: FIELD
FieldDefinition field1 = new FieldDefinition();
field1.setName("P_CODE");
field1.setTypeName("VARCHAR");
field1.setSize(20);
field1.setShouldAllowNull(true);
field1.setIsPrimaryKey(false);
field1.setUnique(false);
field1.setIsIdentity(false);
tabledefinition.addField(field1);
// SECTION: FIELD
FieldDefinition field2 = new FieldDefinition();
field2.setName("CITY");
field2.setTypeName("VARCHAR");
field2.setSize(80);
field2.setShouldAllowNull(true);
field2.setIsPrimaryKey(false);
field2.setUnique(false);
field2.setIsIdentity(false);
tabledefinition.addField(field2);
// SECTION: FIELD
FieldDefinition field3 = new FieldDefinition();
field3.setName("PROVINCE");
field3.setTypeName("VARCHAR");
field3.setSize(80);
field3.setShouldAllowNull(true);
field3.setIsPrimaryKey(false);
field3.setUnique(false);
field3.setIsIdentity(false);
tabledefinition.addField(field3);
// SECTION: FIELD
FieldDefinition field4 = new FieldDefinition();
field4.setName("STREET");
field4.setTypeName("VARCHAR");
field4.setSize(80);
field4.setShouldAllowNull(true);
field4.setIsPrimaryKey(false);
field4.setUnique(false);
field4.setIsIdentity(false);
tabledefinition.addField(field4);
// SECTION: FIELD
FieldDefinition field5 = new FieldDefinition();
field5.setName("COUNTRY");
field5.setTypeName("VARCHAR");
field5.setSize(80);
field5.setShouldAllowNull(true);
field5.setIsPrimaryKey(false);
field5.setUnique(false);
field5.setIsIdentity(false);
tabledefinition.addField(field5);
addTableDefinition(tabledefinition);
}
protected void buildEMPLOYEETable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_EMPLOYEE");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("EMP_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setUnique(false);
field.setIsIdentity(true);
tabledefinition.addField(field);
// SECTION: FIELD
FieldDefinition field1 = new FieldDefinition();
field1.setName("F_NAME");
field1.setTypeName("VARCHAR");
field1.setSize(40);
field1.setShouldAllowNull(true);
field1.setIsPrimaryKey(false);
field1.setUnique(false);
field1.setIsIdentity(false);
tabledefinition.addField(field1);
// SECTION: FIELD
FieldDefinition field2 = new FieldDefinition();
field2.setName("L_NAME");
field2.setTypeName("VARCHAR");
field2.setSize(40);
field2.setShouldAllowNull(true);
field2.setIsPrimaryKey(false);
field2.setUnique(false);
field2.setIsIdentity(false);
tabledefinition.addField(field2);
// SECTION: FIELD
FieldDefinition salary = new FieldDefinition();
salary.setName("SALARY");
salary.setTypeName("INT");
salary.setSize(10);
salary.setShouldAllowNull(true);
salary.setIsPrimaryKey(false);
salary.setUnique(false);
salary.setIsIdentity(false);
tabledefinition.addField(salary);
// SECTION: FIELD
FieldDefinition field3 = new FieldDefinition();
field3.setName("START_DATE");
field3.setTypeName("DATE");
field3.setSize(23);
field3.setShouldAllowNull(true);
field3.setIsPrimaryKey(false);
field3.setUnique(false);
field3.setIsIdentity(false);
tabledefinition.addField(field3);
// SECTION: FIELD
FieldDefinition field4 = new FieldDefinition();
field4.setName("END_DATE");
field4.setTypeName("DATE");
field4.setSize(23);
field4.setShouldAllowNull(true);
field4.setIsPrimaryKey(false);
field4.setUnique(false);
field4.setIsIdentity(false);
tabledefinition.addField(field4);
// SECTION: FIELD
FieldDefinition field7 = new FieldDefinition();
field7.setName("GENDER");
field7.setTypeName("VARCHAR");
field7.setSize(10);
field7.setShouldAllowNull(true);
field7.setIsPrimaryKey(false);
field7.setUnique(false);
field7.setIsIdentity(false);
tabledefinition.addField(field7);
// SECTION: FIELD
FieldDefinition field8 = new FieldDefinition();
field8.setName("ADDR_ID");
field8.setTypeName("NUMERIC");
field8.setSize(15);
field8.setShouldAllowNull(true);
field8.setIsPrimaryKey(false);
field8.setUnique(false);
field8.setIsIdentity(false);
field8.setForeignKeyFieldName("P2_ADDRESS.ADDRESS_ID");
tabledefinition.addField(field8);
// SECTION: FIELD
FieldDefinition field9 = new FieldDefinition();
field9.setName("MANAGER_ID");
field9.setTypeName("NUMERIC");
field9.setSize(15);
field9.setShouldAllowNull(true);
field9.setIsPrimaryKey(false);
field9.setUnique(false);
field9.setIsIdentity(false);
field9.setForeignKeyFieldName("P2_EMPLOYEE.EMP_ID");
tabledefinition.addField(field9);
// SECTION: FIELD
FieldDefinition field10 = new FieldDefinition();
field10.setName("VERSION");
field10.setTypeName("NUMERIC");
field10.setSize(15);
field10.setShouldAllowNull(true);
field10.setIsPrimaryKey(false);
field10.setUnique(false);
field10.setIsIdentity(false);
tabledefinition.addField(field10);
addTableDefinition(tabledefinition);
}
protected void buildSALARYTable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_SALARY");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("EMP_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setForeignKeyFieldName("P2_EMPLOYEE.EMP_ID");
tabledefinition.addField(field);
// SECTION: FIELD
FieldDefinition salary = new FieldDefinition();
salary.setName("SALARY");
salary.setTypeName("INT");
salary.setSize(10);
tabledefinition.addField(salary);
addTableDefinition(tabledefinition);
}
protected void buildEMP_JOBTable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_EMP_JOB");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("EMP_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setForeignKeyFieldName("P2_EMPLOYEE.EMP_ID");
tabledefinition.addField(field);
// SECTION: FIELD
field = new FieldDefinition();
field.setName("TITLE_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setForeignKeyFieldName("P2_JOBTITLE.JOB_ID");
tabledefinition.addField(field);
addTableDefinition(tabledefinition);
}
protected void buildEMAILTable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_EMAIL");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("EMP_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setForeignKeyFieldName("P2_EMPLOYEE.EMP_ID");
tabledefinition.addField(field);
// SECTION: FIELD
field = new FieldDefinition();
field.setName("EMAIL_TYPE");
field.setTypeName("VARCHAR");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
tabledefinition.addField(field);
// SECTION: FIELD
field = new FieldDefinition();
field.setName("EMAIL_ADDRESS");
field.setTypeName("VARCHAR");
field.setSize(100);
tabledefinition.addField(field);
addTableDefinition(tabledefinition);
}
protected void buildRESPONSTable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_RESPONS");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("EMP_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setForeignKeyFieldName("P2_EMPLOYEE.EMP_ID");
tabledefinition.addField(field);
// SECTION: FIELD
field = new FieldDefinition();
field.setName("PRIORITY");
field.setTypeName("NUMERIC");
field.setSize(5);
field.setShouldAllowNull(false);
tabledefinition.addField(field);
// SECTION: FIELD
field = new FieldDefinition();
field.setName("RESPONSIBILITY");
field.setTypeName("VARCHAR");
field.setSize(100);
tabledefinition.addField(field);
addTableDefinition(tabledefinition);
}
protected void buildJOBTITLETable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_JOBTITLE");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("JOB_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setIsIdentity(true);
tabledefinition.addField(field);
// SECTION: FIELD
FieldDefinition field1 = new FieldDefinition();
field1.setName("TITLE");
field1.setTypeName("VARCHAR");
field1.setSize(100);
tabledefinition.addField(field1);
addTableDefinition(tabledefinition);
}
protected void buildDEGREETable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_DEGREE");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("DEGREE_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setIsIdentity(true);
tabledefinition.addField(field);
// SECTION: FIELD
FieldDefinition field2 = new FieldDefinition();
field2.setName("EMP_ID");
field2.setTypeName("NUMERIC");
field2.setSize(15);
tabledefinition.addField(field2);
// SECTION: FIELD
FieldDefinition field1 = new FieldDefinition();
field1.setName("NAME");
field1.setTypeName("VARCHAR");
field1.setSize(100);
tabledefinition.addField(field1);
addTableDefinition(tabledefinition);
}
protected void buildLPROJECTTable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_LPROJECT");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("PROJ_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setUnique(false);
field.setIsIdentity(false);
tabledefinition.addField(field);
// SECTION: FIELD
FieldDefinition field2 = new FieldDefinition();
field2.setName("PROJ_NAME");
field2.setTypeName("VARCHAR");
field2.setSize(30);
field2.setShouldAllowNull(true);
field2.setIsPrimaryKey(false);
field2.setUnique(false);
field2.setIsIdentity(false);
tabledefinition.addField(field2);
// SECTION: FIELD
FieldDefinition field3 = new FieldDefinition();
field3.setName("DESCRIP");
field3.setTypeName("VARCHAR");
field3.setSize(200);
field3.setShouldAllowNull(true);
field3.setIsPrimaryKey(false);
field3.setUnique(false);
field3.setIsIdentity(false);
tabledefinition.addField(field3);
// SECTION: FIELD
FieldDefinition field4 = new FieldDefinition();
field4.setName("LEADER_ID");
field4.setTypeName("NUMERIC");
field4.setSize(15);
field4.setShouldAllowNull(true);
field4.setIsPrimaryKey(false);
field4.setUnique(false);
field4.setIsIdentity(false);
field4.setForeignKeyFieldName("P2_EMPLOYEE.EMP_ID");
tabledefinition.addField(field4);
// SECTION: FIELD
FieldDefinition field5 = new FieldDefinition();
field5.setName("VERSION");
field5.setTypeName("NUMERIC");
field5.setSize(15);
field5.setShouldAllowNull(true);
field5.setIsPrimaryKey(false);
field5.setUnique(false);
field5.setIsIdentity(false);
tabledefinition.addField(field5);
// SECTION: FIELD
FieldDefinition field6 = new FieldDefinition();
field6.setName("BUDGET");
field6.setTypeName("DOUBLE PRECIS");
field6.setSize(18);
field6.setShouldAllowNull(true);
field6.setIsPrimaryKey(false);
field6.setUnique(false);
field6.setIsIdentity(false);
tabledefinition.addField(field6);
// SECTION: FIELD
FieldDefinition field7 = new FieldDefinition();
field7.setName("MILESTONE");
field7.setTypeName("DATETIME");
field7.setSize(6);
field7.setShouldAllowNull(true);
field7.setIsPrimaryKey(false);
field7.setUnique(false);
field7.setIsIdentity(false);
tabledefinition.addField(field7);
addTableDefinition(tabledefinition);
}
protected void buildSPROJECTTable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_SPROJECT");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("PROJ_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setIsIdentity(true);
tabledefinition.addField(field);
// SECTION: FIELD
FieldDefinition field2 = new FieldDefinition();
field2.setName("PROJ_NAME");
field2.setTypeName("VARCHAR");
field2.setSize(30);
field2.setShouldAllowNull(true);
field2.setIsPrimaryKey(false);
field2.setUnique(false);
field2.setIsIdentity(false);
tabledefinition.addField(field2);
// SECTION: FIELD
FieldDefinition field3 = new FieldDefinition();
field3.setName("DESCRIP");
field3.setTypeName("VARCHAR");
field3.setSize(200);
field3.setShouldAllowNull(true);
field3.setIsPrimaryKey(false);
field3.setUnique(false);
field3.setIsIdentity(false);
tabledefinition.addField(field3);
// SECTION: FIELD
FieldDefinition field4 = new FieldDefinition();
field4.setName("LEADER_ID");
field4.setTypeName("NUMERIC");
field4.setSize(15);
field4.setShouldAllowNull(true);
field4.setIsPrimaryKey(false);
field4.setUnique(false);
field4.setIsIdentity(false);
field4.setForeignKeyFieldName("P2_EMPLOYEE.EMP_ID");
tabledefinition.addField(field4);
// SECTION: FIELD
FieldDefinition field5 = new FieldDefinition();
field5.setName("VERSION");
field5.setTypeName("NUMERIC");
field5.setSize(15);
field5.setShouldAllowNull(true);
field5.setIsPrimaryKey(false);
field5.setUnique(false);
field5.setIsIdentity(false);
tabledefinition.addField(field5);
addTableDefinition(tabledefinition);
}
protected void buildPHONETable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_PHONE");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("EMP_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(false);
field.setUnique(false);
field.setIsIdentity(false);
field.setForeignKeyFieldName("P2_EMPLOYEE.EMP_ID");
tabledefinition.addField(field);
// SECTION: FIELD
FieldDefinition field1 = new FieldDefinition();
field1.setName("TYPE");
field1.setTypeName("VARCHAR");
field1.setSize(15);
field1.setShouldAllowNull(false);
field1.setIsPrimaryKey(false);
field1.setUnique(false);
field1.setIsIdentity(false);
tabledefinition.addField(field1);
// SECTION: FIELD
FieldDefinition field2 = new FieldDefinition();
field2.setName("AREA_CODE");
field2.setTypeName("VARCHAR");
field2.setSize(3);
field2.setShouldAllowNull(true);
field2.setIsPrimaryKey(false);
field2.setUnique(false);
field2.setIsIdentity(false);
tabledefinition.addField(field2);
// SECTION: FIELD
FieldDefinition field3 = new FieldDefinition();
field3.setName("P_NUMBER");
field3.setTypeName("VARCHAR");
field3.setSize(7);
field3.setShouldAllowNull(true);
field3.setIsPrimaryKey(false);
field3.setUnique(false);
field3.setIsIdentity(false);
tabledefinition.addField(field3);
addTableDefinition(tabledefinition);
}
protected void buildPROJ_EMPTable() {
TableDefinition tabledefinition = new TableDefinition();
// SECTION: TABLE
tabledefinition.setName("P2_PROJ_EMP");
// SECTION: FIELD
FieldDefinition field = new FieldDefinition();
field.setName("EMP_ID");
field.setTypeName("NUMERIC");
field.setSize(15);
field.setShouldAllowNull(false);
field.setIsPrimaryKey(true);
field.setForeignKeyFieldName("P2_EMPLOYEE.EMP_ID");
tabledefinition.addField(field);
// SECTION: FIELD
FieldDefinition field1 = new FieldDefinition();
field1.setName("PROJ_ID");
field1.setTypeName("NUMERIC");
field1.setSize(15);
field1.setShouldAllowNull(false);
field1.setIsPrimaryKey(true);
tabledefinition.addField(field1);
addTableDefinition(tabledefinition);
}
}