mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 05:01:07 +00:00
Update getExistingRecordQueryFilter to convert sourceKeyList to be in the destination foreign key field's type
This commit is contained in:
@ -173,8 +173,21 @@ public abstract class AbstractTableSyncTransformStep extends AbstractTransformSt
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
protected QQueryFilter getExistingRecordQueryFilter(RunBackendStepInput runBackendStepInput, List<Serializable> sourceKeyList)
|
protected QQueryFilter getExistingRecordQueryFilter(RunBackendStepInput runBackendStepInput, List<Serializable> sourceKeyList)
|
||||||
{
|
{
|
||||||
String destinationTableForeignKeyField = getSyncProcessConfig().destinationTableForeignKey;
|
String destinationTableForeignKeyFieldName = getSyncProcessConfig().destinationTableForeignKey;
|
||||||
return new QQueryFilter().withCriteria(new QFilterCriteria(destinationTableForeignKeyField, QCriteriaOperator.IN, sourceKeyList));
|
String destinationTableName = getSyncProcessConfig().destinationTable;
|
||||||
|
QFieldMetaData destinationForeignKeyField = QContext.getQInstance().getTable(destinationTableName).getField(destinationTableForeignKeyFieldName);
|
||||||
|
|
||||||
|
List<Serializable> sourceKeysInDestinationKeyTypeList = null;
|
||||||
|
if(sourceKeyList != null)
|
||||||
|
{
|
||||||
|
sourceKeysInDestinationKeyTypeList = new ArrayList<>();
|
||||||
|
for(Serializable sourceKey : sourceKeyList)
|
||||||
|
{
|
||||||
|
sourceKeysInDestinationKeyTypeList.add(ValueUtils.getValueAsFieldType(destinationForeignKeyField.getType(), sourceKey));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new QQueryFilter().withCriteria(new QFilterCriteria(destinationTableForeignKeyFieldName, QCriteriaOperator.IN, sourceKeysInDestinationKeyTypeList));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user