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) {