/******************************************************************************* | |
* 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.tableswithspacesmodel; | |
import org.eclipse.persistence.testing.framework.*; | |
import org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform; | |
import org.eclipse.persistence.internal.sessions.AbstractSession; | |
import org.eclipse.persistence.testing.models.employee.domain.*; | |
/** | |
* This handles the constraint deletion requirements. | |
*/ | |
public class EmployeeWithSpacesDeleteTest extends DeleteObjectTest { | |
/** | |
* ProjectDeleteTest constructor comment. | |
*/ | |
public EmployeeWithSpacesDeleteTest() { | |
super(); | |
} | |
/** | |
* ProjectDeleteTest constructor comment. | |
* @param originalObject java.lang.Object | |
*/ | |
public EmployeeWithSpacesDeleteTest(Object originalObject) { | |
super(originalObject); | |
} | |
public static void deleteDependencies(org.eclipse.persistence.sessions.Session session, Employee employee) { | |
// CR2114 - following line modified; employee.getClass() passed as argument | |
String appendString = ((AbstractSession)session).getPlatform(employee.getClass()).getTableQualifier(); | |
String startQuoteChar = ((DatasourcePlatform)((AbstractSession)session).getPlatform(employee.getClass())).getStartDelimiter(); | |
String endQuoteChar = ((DatasourcePlatform)((AbstractSession)session).getPlatform(employee.getClass())).getEndDelimiter(); | |
if (appendString.length() != 0) | |
appendString = appendString + "."; | |
org.eclipse.persistence.sessions.Session psession = ((AbstractSession)session).getSessionForClass(Project.class); | |
// Must drop references first to appease constraints. | |
psession.executeNonSelectingCall(new org.eclipse.persistence.queries.SQLCall("update " + appendString + startQuoteChar + "PROJECT TABLE" + endQuoteChar + " set LEADER_ID = null where LEADER_ID = " + employee.getId())); | |
org.eclipse.persistence.sessions.Session esession = ((AbstractSession)session).getSessionForClass(Employee.class); | |
esession.executeNonSelectingCall(new org.eclipse.persistence.queries.SQLCall("update " + appendString + startQuoteChar + "EMPLOYEE TABLE" + endQuoteChar + " set MANAGER_ID = null where MANAGER_ID = " + employee.getId())); | |
} | |
protected void setup() { | |
if (getSession().getPlatform().isSymfoware()) { | |
throwWarning("Test system EmployeeWithSpacesSystem is not supported on Symfoware, " | |
+ "it does not allow spaces in tables or columns. (bug 304906)"); | |
} | |
super.setup(); | |
deleteDependencies(getSession(), (Employee)getOriginalObject()); | |
} | |
} |