|
|
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ЛагманОпять же, нет ответа на вопрос "зачем". Затем что бы сохранить обновленный объект и подчистить части которые уже им не используются. ЛагманПытаетесь экономить байты? Производительность? По-моему, выделки не стоит. Проще перезаписывать весь объект. Кто будет удалять уже не используемые файлы? Оставлять их нельзя. ЛагманЕсли уж на то пошло, можно выделить в независимые действия (транзакции) с отдельными сущностями: "изменение порядка ссылок", "удаление картинок" и т.д., явно вызываемые кнопочками у пользователя. Это web. Можно принять или все изменения или отказаться от всех и вернуться к первоначальному варианту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 16:53:57 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
забыл ник, отчасти согласен, но: - есть штатный механизм "изменённый объект" у хибера. Почему его не задействовать и писать велосипед? - накапливать что-то (состояния) в тонком клиенте в веб - вообще геморрой. (Лагман +1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 16:59:43 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоНЭто web. Можно принять или все изменения или отказаться от всех и вернуться к первоначальному варианту. это не веб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:00:58 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоНКто будет удалять уже не используемые файлы?Вы, конечно. Плохо понимаю, в чём проблема. Есть "было" (на сайте) и "стало" (прислано пользователем). Плевать, каким образом пользователь создал "стало" - сравниваем с "было" и добавляем (новое), удаляем (несуществующее), обновляем (изменённое). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:02:07 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоНКто будет удалять уже не используемые файлы? Оставлять их нельзя. фоновый процесс по вечерам)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:02:10 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
Petro123забыл ник, отчасти согласен, но: - есть штатный механизм "изменённый объект" у хибера. Почему его не задействовать и писать велосипед? - накапливать что-то (состояния) в тонком клиенте в веб - вообще геморрой. (Лагман +1) Я и описал штатный механизм хибера, единственное что перед сохранением надо зупомнить старые пути, если сохранение успешно - сравнить их с предыдщими, и в зависимости от сравнения, подчистить\добавить файлы, и нету тут никаких сложностей с накапливанием инфы. Нас интересуют только начальное и конечное состояние ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:03:59 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоНLeonidvСохраняем состояние объекта до изменения. Получаем новый объект с изменениями и пробегаемся рефлексией по полям. Самое сложное, как мне кажется, это вложенные коллекции. Рефлексия меня не спасет если, во вложенной коллекции было 3 элемента. Пользователь удалил один адрес, переставил местами два оставшихся, добавил еще один адрес. Почему не спасет? Сравниваем списки по элементо и находим, кто удален, а кто нет. Если объект достался из БД так вообще отлично - можно к его id привязатся. Если не достался - можно грязным хакам этот id проставить (отрицательным, например) и после полной обработки удалить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:09:30 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
забыл ник, в штатном только коллекций-сортировки фото нету. Но можно просто через доп-св-во ввести imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:09:54 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЕсть "было" (на сайте) и "стало" (прислано пользователем). Плевать, каким образом пользователь создал "стало" - сравниваем с "было" и добавляем (новое), удаляем (несуществующее), обновляем (изменённое). Если вы обратили внимание я про это и спрашивал. Вся задача свелась к перебору и резолву операции. Вот этот перебор и резолв я хочу оптимизировать. Ну что-то типа такого: на основе опять же перебора, создать список операций и предать в месте с первоначальным объектом исполнителю который будет все это выполнять а на выходе я бы имел обновленный объект. Мне нужен подход или паттерн который правильно было бы здесь применить. Мне кажется "в лоб" не совсем правильно решать такие задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:18:43 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоН, как хибер определяет, где в БД делать UPDATE а где DELETE? Для объекта и его коллекции! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:22:40 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
Petro123ТимоН, как хибер определяет, где в БД делать UPDATE а где DELETE? Для объекта и его коллекции! Никак. Сначала все убивает, потом создает заново. Вообще я про БД ничего не говорил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:26:06 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоНPetro123ТимоН, как хибер определяет, где в БД делать UPDATE а где DELETE? Для объекта и его коллекции! Никак. Сначала все убивает, потом создает заново. Вообще я про БД ничего не говорил :) 1. Вот это и есть самый простой вариант. Чем не нравится? 2. Я тоже. Я про Хибер говорил))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:28:28 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
Petro1231. Вот это и есть самый простой вариант. Чем не нравится? Нравится. Но, у меня нет самих фотографий у меня есть только ссылки. Перезалить их я не могу. Нет, могу сначала скачать, все удалить, закачать заново. Не кошерно это не находите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:32:59 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоННикак. Сначала все убивает, потом создает заново Код: java 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:34:50 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
Если не хочешь руками то у хибера вроде есть listeners? Напиши на onDelete - запуск асинхронного таска по удалению файла(пусть берешь из удаляемой сущности) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:35:28 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
Давайте рассмотрим случай когда БД нет. Есть объект и объект' все больше ничего нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:43:02 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоНДавайте рассмотрим случай когда БД нет. Есть объект и объект' все больше ничего нет. Код: java 1. 2. 3. 4. 5. 6. так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:46:08 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
Petro123ТимоНДавайте рассмотрим случай когда БД нет. Есть объект и объект' все больше ничего нет. Код: java 1. 2. 3. 4. 5. 6. так? Не понял к чему вы клоните. Нет не так ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:48:37 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоН, программист? Напиши демо-код с хибером МИНИМАЛЬНЫЙ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:51:07 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ну, а потом, с вопросом - почему хибер не сохранил изменения. А фото через триггер\листенер тебе сказали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:53:02 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
Petro123, У меня нет БД, нет Хибера. Я уже говорил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:57:42 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
как вариант можно посмотреть как это реализовано в каком-нибудь STM(принцип ведь похож), например AKKA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 17:59:03 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоНPetro123, У меня нет БД, нет Хибера. Я уже говорил. всё понятно - ОРМ своими руками. Т.е. сделай точно так как Хибер. Это паттерн. Удачи! 5.2.1 Использование управляемого версионирования http://dr-magic.blogspot.com/2010/01/3.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 18:00:07 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоНВот этот перебор и резолв я хочу оптимизировать.Не надо заниматься преждевременной оптимизацией. Реализуйте максимально простой работающий вариант и решайте проблемы по мере поступления. По результатам практической эксплуатации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2012, 18:16:38 |
|
||
|
Определение изменившихся свойств объекта
|
|||
|---|---|---|---|
|
#18+
ТимоНОн отдается пользователю на редактирование, после сабмита нам необходимо понять какие свойства в объекте или в дочерних объектах поменялись/удалились/добавились. Как это сделать? На ум приходит Memento + "какой то резолвер который сможет подсказать что изменилось". CGLIB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2012, 11:53:03 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37892628&tid=2131273]: |
0ms |
get settings: |
19ms |
get forum list: |
28ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
90ms |
get topic data: |
23ms |
get forum data: |
6ms |
get page messages: |
126ms |
get tp. blocked users: |
3ms |
| others: | 321ms |
| total: | 632ms |

| 0 / 0 |
