Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid early population of externally generated ID fields. #831

Closed
michael-simons opened this issue Aug 31, 2020 · 1 comment
Closed

Avoid early population of externally generated ID fields. #831

michael-simons opened this issue Aug 31, 2020 · 1 comment
Assignees

Comments

@michael-simons
Copy link
Collaborator

See https://jira.spring.io/browse/DATAGRAPH-1212

@michael-simons michael-simons self-assigned this Aug 31, 2020
michael-simons added a commit that referenced this issue Sep 1, 2020
This introduces `optionalNativeId` on the mapping context that does not trigger any id generating strategies in contrast tp `nativeId`. This method is than used especially in the eventing system so that firing a pre-save event contains the correct `isNew`state.

Furthrmore it is now used in checking dirtiness and in the delete events, so that those don’t modify the object states without any added benefit.
michael-simons added a commit that referenced this issue Sep 1, 2020
This introduces `optionalNativeId` on the mapping context that does not trigger any id generating strategies in contrast tp `nativeId`. This method is than used especially in the eventing system so that firing a pre-save event contains the correct `isNew`state.

Furthermore it is now used in checking dirtiness and in the delete events, so that those don’t modify the object states without any added benefit.
michael-simons added a commit that referenced this issue Sep 1, 2020
This introduces `optionalNativeId` on the mapping context that does not trigger any id generating strategies in contrast tp `nativeId`. This method is than used especially in the eventing system so that firing a pre-save event contains the correct `isNew`state.

Furthermore it is now used in checking dirtiness and in the delete events, so that those don’t modify the object states without any added benefit.
michael-simons added a commit that referenced this issue Sep 1, 2020
This introduces `optionalNativeId` on the mapping context that does not trigger any id generating strategies in contrast tp `nativeId`. This method is than used especially in the eventing system so that firing a pre-save event contains the correct `isNew`state.

Furthermore it is now used in checking dirtiness and in the delete events, so that those don’t modify the object states without any added benefit.
@michael-simons
Copy link
Collaborator Author

Implemented in Master, 3.2 and 3.1.

michael-simons added a commit that referenced this issue Oct 26, 2020
This change avoids the recursive depth first iteration of nodes when visiting and testing them if we should fire a pre-save event.

To make this work, dirty must be fixed in two places:
- Checking for relationship entities trigges an ID creation to early (compare GH-831, 1805999)
- we must ensure that we check only for existing previous relationships that are actually touched by the object whos dirtyness is checked

Furthermore, the change avoids a lot of checks for the native id of the changed object and treats collections now correctly.

This closes #854.
michael-simons added a commit that referenced this issue Oct 29, 2020
This change avoids the recursive depth first iteration of nodes when visiting and testing them if we should fire a pre-save event.

To make this work, dirty must be fixed in two places:
- Checking for relationship entities trigges an ID creation to early (compare GH-831, 1805999)
- we must ensure that we check only for existing previous relationships that are actually touched by the object whos dirtyness is checked

Furthermore, the change avoids a lot of checks for the native id of the changed object and treats collections now correctly.

This closes #854.
michael-simons added a commit that referenced this issue Oct 29, 2020
This change avoids the recursive depth first iteration of nodes when visiting and testing them if we should fire a pre-save event.

To make this work, dirty must be fixed in two places:
- Checking for relationship entities trigges an ID creation to early (compare GH-831, 1805999)
- we must ensure that we check only for existing previous relationships that are actually touched by the object whos dirtyness is checked

Furthermore, the change avoids a lot of checks for the native id of the changed object and treats collections now correctly.

This closes #854.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant