mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
CE-878: added flag to not do deletes upon replace action
This commit is contained in:
@ -136,19 +136,22 @@ public class ReplaceAction extends AbstractQActionFunction<ReplaceInput, Replace
|
|||||||
UpdateOutput updateOutput = new UpdateAction().execute(updateInput);
|
UpdateOutput updateOutput = new UpdateAction().execute(updateInput);
|
||||||
output.setUpdateOutput(updateOutput);
|
output.setUpdateOutput(updateOutput);
|
||||||
|
|
||||||
QQueryFilter deleteFilter = new QQueryFilter(new QFilterCriteria(primaryKeyField, QCriteriaOperator.NOT_IN, primaryKeysToKeep));
|
if(input.getPerformDeletes())
|
||||||
if(input.getFilter() != null)
|
|
||||||
{
|
{
|
||||||
deleteFilter.addSubFilter(input.getFilter());
|
QQueryFilter deleteFilter = new QQueryFilter(new QFilterCriteria(primaryKeyField, QCriteriaOperator.NOT_IN, primaryKeysToKeep));
|
||||||
}
|
if(input.getFilter() != null)
|
||||||
|
{
|
||||||
|
deleteFilter.addSubFilter(input.getFilter());
|
||||||
|
}
|
||||||
|
|
||||||
DeleteInput deleteInput = new DeleteInput();
|
DeleteInput deleteInput = new DeleteInput();
|
||||||
deleteInput.setTableName(table.getName());
|
deleteInput.setTableName(table.getName());
|
||||||
deleteInput.setQueryFilter(deleteFilter);
|
deleteInput.setQueryFilter(deleteFilter);
|
||||||
deleteInput.setTransaction(transaction);
|
deleteInput.setTransaction(transaction);
|
||||||
deleteInput.setOmitDmlAudit(input.getOmitDmlAudit());
|
deleteInput.setOmitDmlAudit(input.getOmitDmlAudit());
|
||||||
DeleteOutput deleteOutput = new DeleteAction().execute(deleteInput);
|
DeleteOutput deleteOutput = new DeleteAction().execute(deleteInput);
|
||||||
output.setDeleteOutput(deleteOutput);
|
output.setDeleteOutput(deleteOutput);
|
||||||
|
}
|
||||||
|
|
||||||
if(weOwnTheTransaction)
|
if(weOwnTheTransaction)
|
||||||
{
|
{
|
||||||
|
@ -39,6 +39,7 @@ public class ReplaceInput extends AbstractTableActionInput
|
|||||||
private UniqueKey key;
|
private UniqueKey key;
|
||||||
private List<QRecord> records;
|
private List<QRecord> records;
|
||||||
private QQueryFilter filter;
|
private QQueryFilter filter;
|
||||||
|
private boolean performDeletes = true;
|
||||||
|
|
||||||
private boolean omitDmlAudit = false;
|
private boolean omitDmlAudit = false;
|
||||||
|
|
||||||
@ -207,4 +208,35 @@ public class ReplaceInput extends AbstractTableActionInput
|
|||||||
return (this);
|
return (this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Getter for performDeletes
|
||||||
|
*******************************************************************************/
|
||||||
|
public boolean getPerformDeletes()
|
||||||
|
{
|
||||||
|
return (this.performDeletes);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Setter for performDeletes
|
||||||
|
*******************************************************************************/
|
||||||
|
public void setPerformDeletes(boolean performDeletes)
|
||||||
|
{
|
||||||
|
this.performDeletes = performDeletes;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
** Fluent setter for performDeletes
|
||||||
|
*******************************************************************************/
|
||||||
|
public ReplaceInput withPerformDeletes(boolean performDeletes)
|
||||||
|
{
|
||||||
|
this.performDeletes = performDeletes;
|
||||||
|
return (this);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user