Pour moi mettre un filtre sur une clé virtuelle n’a pas trop de sens car c’est normalement une champ ID sans colonne physique (donc pas de where t.col='filter' possible). Il y a juste sa search spec sur le Link qui est ajouté au where en remplaçant le token [ROWID] par le parent Id de la liste.
J’ai pas tout compris à ton code, mais pour forcer le filtre d’un lien virtuel sur un autre parent, il faut changer de parent context :
// set the parent values
parentObject.select("1234");
// Set the parent context to replace the virtual link [ROWID]
linkedObj.storeParentContext(parentObject, refFieldName, parentObject.getValues());
linkedObj.search()...
Et il faut jamais faire de : int nb = linkedObj.search().size();
mais juste int nb = linkedObj.getCount(); // ou count()
sinon tu charges la table/requete en mémoire pour n’en compter que les lignes.