mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-17 20:50:44 +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)
|
||||
{
|
||||
String destinationTableForeignKeyField = getSyncProcessConfig().destinationTableForeignKey;
|
||||
return new QQueryFilter().withCriteria(new QFilterCriteria(destinationTableForeignKeyField, QCriteriaOperator.IN, sourceKeyList));
|
||||
String destinationTableForeignKeyFieldName = getSyncProcessConfig().destinationTableForeignKey;
|
||||
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