Улучшение сравнения измененных свойст объекта для создания SQL Update #106
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
По мотивам #100. Одна из вылезших проблем до которой никто не добирался, что бизнес объекты (находящиеся в свойствах обновляемого объекта) сравниваются один в один. В то время как при сохранении объекта важно лишь знать изменилось ли id объекта в свойствах или нет.
Так же один в один сравниваются timestamp, а они всегда будут разные и из-за этого всегда будут попадать в update. Все подобные объекты, имеющие интерфейс Stringable, приводятся через него к строке и сравниваются уже эти строки.
Само же сравние изменилось свойство или нет переезжает из StorableDAO в LightMetaProperty/InnerMetaProperty. Там, думаю, этой логике более правильное место + теперь более просто покрыть эту логику тестами что и было сделано.
Тесты прилагаются. Жду недельку за/против, обсуждаем и изменения попадают в мастер, в 1.0 их добавлять, думаю, не стоит.
P.S. в этот request так же попали изменения из #105