*/
protected String getRemoveAtNullifyStmt(ElementContainerStore ecs)
{
if (removeAtNullifyStmt == null)
{
JavaTypeMapping ownerMapping = ecs.getOwnerMapping();
JavaTypeMapping orderMapping = ecs.getOrderMapping();
DatastoreContainerObject containerTable = ecs.getContainerTable();
ElementContainerStore.ElementInfo[] elementInfo = ecs.getElementInfo();
JavaTypeMapping relationDiscriminatorMapping = ecs.getRelationDiscriminatorMapping();
StringBuffer stmt = new StringBuffer();
stmt.append("UPDATE ");
if (elementInfo.length > 1)
{
stmt.append("?");
}
else
{
// Could use elementInfo[0].getDatastoreClass but need to allow for relation in superclass table
stmt.append(containerTable.toString());
}
stmt.append(" SET ");
for (int i = 0; i < ownerMapping.getNumberOfDatastoreMappings(); i++)
{
if (i > 0)
{
stmt.append(", ");
}
stmt.append(ownerMapping.getDatastoreMapping(i).getDatastoreField().getIdentifier().toString() + "=NULL");
}
if (orderMapping != null)
{
for (int i = 0; i < orderMapping.getNumberOfDatastoreMappings(); i++)
{
stmt.append(", ");
stmt.append(orderMapping.getDatastoreMapping(i).getDatastoreField().getIdentifier().toString() + "=-1");
}
}
stmt.append(" WHERE ");
for (int i = 0; i < ownerMapping.getNumberOfDatastoreMappings(); i++)
{
if (i > 0)
{
stmt.append(" AND ");
}
stmt.append(ownerMapping.getDatastoreMapping(i).getDatastoreField().getIdentifier().toString());
stmt.append(" = ");
stmt.append(((RDBMSMapping) ownerMapping.getDatastoreMapping(i)).getUpdateInputParameter());
}
if (orderMapping != null)
{
for (int i = 0; i < orderMapping.getNumberOfDatastoreMappings(); i++)
{
stmt.append(" AND ");
stmt.append(
orderMapping.getDatastoreMapping(i).getDatastoreField().getIdentifier().toString());
stmt.append(" = ");
stmt.append(((RDBMSMapping) orderMapping.getDatastoreMapping(i)).getUpdateInputParameter());
}
}
if (relationDiscriminatorMapping != null)
{
for (int i = 0; i < relationDiscriminatorMapping.getNumberOfDatastoreMappings(); i++)
{
stmt.append(" AND ");
stmt.append(
relationDiscriminatorMapping.getDatastoreMapping(i).getDatastoreField().getIdentifier().toString());
stmt.append(" = ");
stmt.append(((RDBMSMapping) relationDiscriminatorMapping.getDatastoreMapping(i)).getUpdateInputParameter());
}
}
removeAtNullifyStmt = stmt.toString();
}
return removeAtNullifyStmt;