diff --git a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/panel/references/ReferencesResultsContainer.java b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/panel/references/ReferencesResultsContainer.java index 9ed23bfa74204fe4235a5a3f87ce3a7ec0935d62..a46ae82ec17f4b599a82d66a11ab1bd8508407be 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/panel/references/ReferencesResultsContainer.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.data/src/org/jkiss/dbeaver/ui/controls/resultset/panel/references/ReferencesResultsContainer.java @@ -65,12 +65,12 @@ class ReferencesResultsContainer implements IResultSetContainer { private DBSDataContainer parentDataContainer; /** - * Result of the toString() call on the latest parentDataContainer. It is used for detection if the underlying data container has changed. + * Full name of the latest parentDataContainer. It is used for detection if the underlying data container has changed. * See this ticket. * */ @Nullable - private String parentContainerStringDigest; + private String parentContainerFullName; private DBSDataContainer dataContainer; @@ -176,14 +176,21 @@ class ReferencesResultsContainer implements IResultSetContainer { void refreshReferences() { dataViewer.resetHistory(); DBSDataContainer newParentContainer = parentController.getDataContainer(); - String newParentContainerDigest = newParentContainer != null ? newParentContainer.toString() : null; - if (newParentContainer != parentDataContainer || !Objects.equals(newParentContainerDigest, parentContainerStringDigest)) { + if (newParentContainer != parentDataContainer || !Objects.equals(getDataContainerFullName(newParentContainer), parentContainerFullName)) { refreshReferenceKeyList(); } else if (dataContainer != null) { refreshKeyValues(false); } } + @Nullable + private static String getDataContainerFullName(@Nullable DBSDataContainer dataContainer) { + if (dataContainer == null) { + return null; + } + return DBUtils.getObjectFullName(dataContainer, DBPEvaluationContext.DDL); + } + /** * Load list of referencing keys */ @@ -202,11 +209,10 @@ class ReferencesResultsContainer implements IResultSetContainer { } parentDataContainer = parentController.getDataContainer(); + parentContainerFullName = getDataContainerFullName(parentDataContainer); if (parentDataContainer == null) { - parentContainerStringDigest = null; return; } - parentContainerStringDigest = parentDataContainer.toString(); Set allEntities = new LinkedHashSet<>(); for (DBDAttributeBinding attr : visibleAttributes) {