/******************************************************************************* * 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. ******************************************************************************/ package org.eclipse.persistence.testing.models.jpa.advanced.cascadepersist; import org.eclipse.persistence.tools.schemaframework.*; public class CascadePersistTableCreator extends org.eclipse.persistence.tools.schemaframework.TableCreator { public CascadePersistTableCreator() { setName("CascadePersist"); addTableDefinition(buildEntityX_CPTable()); addTableDefinition(buildEntityZ_CPTable()); addTableDefinition(buildEntityY_CPTable()); } public TableDefinition buildEntityX_CPTable() { TableDefinition table = new TableDefinition(); table.setName("ENTITYX_CP"); FieldDefinition fieldID = new FieldDefinition(); fieldID.setName("ID"); fieldID.setTypeName("NUMBER"); fieldID.setSize(10); fieldID.setIsPrimaryKey(true); fieldID.setIsIdentity(false); fieldID.setUnique(false); fieldID.setShouldAllowNull(false); table.addField(fieldID); FieldDefinition fieldXNAME = new FieldDefinition(); fieldXNAME.setName("XNAME"); fieldXNAME.setTypeName("VARCHAR2"); fieldXNAME.setSize(80); fieldXNAME.setIsPrimaryKey(false); fieldXNAME.setIsIdentity(false); fieldXNAME.setUnique(false); fieldXNAME.setShouldAllowNull(true); table.addField(fieldXNAME); return table; } public TableDefinition buildEntityY_CPTable() { TableDefinition table = new TableDefinition(); table.setName("ENTITYY_CP"); FieldDefinition fieldID = new FieldDefinition(); fieldID.setName("ID"); fieldID.setTypeName("NUMBER"); fieldID.setSize(10); fieldID.setIsPrimaryKey(true); fieldID.setIsIdentity(false); fieldID.setUnique(false); fieldID.setShouldAllowNull(false); table.addField(fieldID); FieldDefinition fieldYNAME = new FieldDefinition(); fieldYNAME.setName("YNAME"); fieldYNAME.setTypeName("VARCHAR2"); fieldYNAME.setSize(80); fieldYNAME.setIsPrimaryKey(false); fieldYNAME.setIsIdentity(false); fieldYNAME.setUnique(false); fieldYNAME.setShouldAllowNull(true); table.addField(fieldYNAME); FieldDefinition fieldYZEntityRelationID = new FieldDefinition(); fieldYZEntityRelationID.setName("YZENTITYRELATION_ID"); fieldYZEntityRelationID.setTypeName("NUMBER"); fieldYZEntityRelationID.setSize(10); fieldYZEntityRelationID.setIsPrimaryKey(false); fieldYZEntityRelationID.setIsIdentity(false); fieldYZEntityRelationID.setUnique(false); fieldYZEntityRelationID.setShouldAllowNull(false); table.addField(fieldYZEntityRelationID); FieldDefinition fieldEntityX_ID = new FieldDefinition(); fieldEntityX_ID.setName("ENTITYX_ID"); fieldEntityX_ID.setTypeName("NUMBER"); fieldEntityX_ID.setSize(10); fieldEntityX_ID.setIsPrimaryKey(false); fieldEntityX_ID.setIsIdentity(false); fieldEntityX_ID.setUnique(false); fieldEntityX_ID.setShouldAllowNull(false); table.addField(fieldEntityX_ID); ForeignKeyConstraint FK_ENTITYY_YZENTITYRELATION_ID = new ForeignKeyConstraint(); FK_ENTITYY_YZENTITYRELATION_ID.setName("FK_YZENTITYRELATION_ID"); FK_ENTITYY_YZENTITYRELATION_ID.setTargetTable("ENTITYZ_CP"); FK_ENTITYY_YZENTITYRELATION_ID.addSourceField("YZENTITYRELATION_ID"); FK_ENTITYY_YZENTITYRELATION_ID.addTargetField("ID"); table.addForeignKeyConstraint(FK_ENTITYY_YZENTITYRELATION_ID); ForeignKeyConstraint FK_ENTITYY_ENTITYX_ID = new ForeignKeyConstraint(); FK_ENTITYY_ENTITYX_ID.setName("FK_ENTITYY_ENTITYX_ID"); FK_ENTITYY_ENTITYX_ID.setTargetTable("ENTITYX_CP"); FK_ENTITYY_ENTITYX_ID.addSourceField("ENTITYX_ID"); FK_ENTITYY_ENTITYX_ID.addTargetField("ID"); table.addForeignKeyConstraint(FK_ENTITYY_ENTITYX_ID); return table; } public TableDefinition buildEntityZ_CPTable() { TableDefinition table = new TableDefinition(); table.setName("ENTITYZ_CP"); FieldDefinition fieldID = new FieldDefinition(); fieldID.setName("ID"); fieldID.setTypeName("NUMBER"); fieldID.setSize(10); fieldID.setIsPrimaryKey(true); fieldID.setIsIdentity(false); fieldID.setUnique(false); fieldID.setShouldAllowNull(false); table.addField(fieldID); FieldDefinition fieldZNAME = new FieldDefinition(); fieldZNAME.setName("ZNAME"); fieldZNAME.setTypeName("VARCHAR2"); fieldZNAME.setSize(80); fieldZNAME.setIsPrimaryKey(false); fieldZNAME.setIsIdentity(false); fieldZNAME.setUnique(false); fieldZNAME.setShouldAllowNull(true); table.addField(fieldZNAME); return table; } }