Merci François pour ton retour.
Il y a deux fk dans l’objet: pour chacune, l’additionalSearchSpec=null et le getFilter=’%’ au premier affichage (qui est ok) et au deuxième (qui est ko). Le filtre de l’objectField row_id est aussi ‘%’.
J’ai activé le LOG_SQL_USER à yes…
J’ai repéré dans les logs la différence entre les deux requêtes de sélection des TreeView:
select t.row_id, t.busn_spec_domain_name, t.busn_spec_domain_dataprovider, t.busn_spec_domain_desc, t.busn_spec_domain_datamap_id, t_BusnSpecDomainDatamapId.busn_datamap_name, t_BusnSpecDomainDatamapId.busn_datamap_data_manager, t.busn_spec_domain_domainleader, t.busnspecdomain_busnspecdomain_id, t_BusnSpecDomainBusnSpecDomainId.busn_spec_domain_name, t_BusnSpecDomainBusnSpecDomainId.busn_spec_domain_datamap_id, t.busn_spec_domain_status, t.busn_spec_domain_path, t.busn_spec_domain_notif, t.busn_workflow_status, t.wkf_busn_spec_domain_name, t.wkf_busn_spec_domain_dataprovider, t.wkf_busn_spec_domain_desc, t.wkf_busn_spec_domain_datamap_id, t_WKFBusnSpecDomainDatamapId.busn_datamap_name, t_WKFBusnSpecDomainDatamapId.busn_datamap_data_manager, t.wkf_busn_spec_domain_domainleader, t.wkf_busnspecdomain_busnspecdomain_id, t_WKFBusnSpecDomainBusnSpecDomainId.wkf_busn_spec_domain_name, t_WKFBusnSpecDomainBusnSpecDomainId.wkf_busn_spec_domain_datamap_id, t.wkf_busn_spec_domain_status, t.wkf_busn_spec_domain_path, t.wkf_busn_spec_domain_notif, t.created_dt, t.created_by, t.updated_dt, t.updated_by from bcsi_spec_busn_domain t inner join bcsi_data_map t_BusnSpecDomainDatamapId on (t.busn_spec_domain_datamap_id=t_BusnSpecDomainDatamapId.row_id) left outer join bcsi_spec_busn_domain t_BusnSpecDomainBusnSpecDomainId on (t.busnspecdomain_busnspecdomain_id=t_BusnSpecDomainBusnSpecDomainId.row_id) inner join bcsi_data_map t_WKFBusnSpecDomainDatamapId on (t.wkf_busn_spec_domain_datamap_id=t_WKFBusnSpecDomainDatamapId.row_id) left outer join bcsi_spec_busn_domain t_WKFBusnSpecDomainBusnSpecDomainId on (t.wkf_busnspecdomain_busnspecdomain_id=t_WKFBusnSpecDomainBusnSpecDomainId.row_id) where (t.row_id=112) order by t.row_id asc;
-> 1 row selected
select t.row_id, t.busn_spec_domain_name, t.busn_spec_domain_dataprovider, t.busn_spec_domain_desc, t.busn_spec_domain_datamap_id, t_BusnSpecDomainDatamapId.busn_datamap_name, t_BusnSpecDomainDatamapId.busn_datamap_data_manager, t.busn_spec_domain_domainleader, t.busnspecdomain_busnspecdomain_id, t_BusnSpecDomainBusnSpecDomainId.busn_spec_domain_name, t_BusnSpecDomainBusnSpecDomainId.busn_spec_domain_datamap_id, t.busn_spec_domain_status, t.busn_spec_domain_path, t.busn_spec_domain_notif, t.busn_workflow_status, t.wkf_busn_spec_domain_name, t.wkf_busn_spec_domain_dataprovider, t.wkf_busn_spec_domain_desc, t.wkf_busn_spec_domain_datamap_id, t_WKFBusnSpecDomainDatamapId.busn_datamap_name, t_WKFBusnSpecDomainDatamapId.busn_datamap_data_manager, t.wkf_busn_spec_domain_domainleader, t.wkf_busnspecdomain_busnspecdomain_id, t_WKFBusnSpecDomainBusnSpecDomainId.wkf_busn_spec_domain_name, t_WKFBusnSpecDomainBusnSpecDomainId.wkf_busn_spec_domain_datamap_id, t.wkf_busn_spec_domain_status, t.wkf_busn_spec_domain_path, t.wkf_busn_spec_domain_notif, t.created_dt, t.created_by, t.updated_dt, t.updated_by from bcsi_spec_busn_domain t inner join bcsi_data_map t_BusnSpecDomainDatamapId on (t.busn_spec_domain_datamap_id=t_BusnSpecDomainDatamapId.row_id) left outer join bcsi_spec_busn_domain t_BusnSpecDomainBusnSpecDomainId on (t.busnspecdomain_busnspecdomain_id=t_BusnSpecDomainBusnSpecDomainId.row_id) inner join bcsi_data_map t_WKFBusnSpecDomainDatamapId on (t.wkf_busn_spec_domain_datamap_id=t_WKFBusnSpecDomainDatamapId.row_id) left outer join bcsi_spec_busn_domain t_WKFBusnSpecDomainBusnSpecDomainId on (t.wkf_busnspecdomain_busnspecdomain_id=t_WKFBusnSpecDomainBusnSpecDomainId.row_id) where (t.wkf_busnspecdomain_busnspecdomain_id=112) order by t.row_id asc limit 20;
-> 0 row selected
La différence est en effet sur l’une des fk qui correspond à une relation de composition (réflexive):
- requête qui fonctionne (ramène 1 ligne) -> where (t.row_id=112);
- … suivie de la requête concernant la recherche des fils (relation reflexive): where (t.wkf_busnspecdomain_busnspecdomain_id=112);
- requête qui ne fonctionne pas (ne ramène aucune ligne) -> where (t.row_id=112) and (t.wkf_busnspecdomain_busnspecdomain_id=112);
- … suivie de la requête concernant la recherche des fils (relation reflexive): where (t.wkf_busnspecdomain_busnspecdomain_id=112);
Il semble donc que le bout de searchspec concernant la relation réflexive ne soit pas réinitialisé lors du réaffichage du TreeView (quel que soit le rowId).