Можно ли просто обновить все поля в Монго, используя Morphia? - PullRequest
1 голос
/ 02 марта 2012

Мы наносим на карту Монго с Морфией. Morphia имеет много оптимизаций, позволяющих применять обновления в документе только к измененным полям.

Это приветствуется, но в данный момент мне нужен неоптимизированный случай. Я просто хочу сохранить сущность и не беспокоиться о том, какие поля изменились.

Конечно, я могу просто вызвать save (), но это вызывает методы жизненного цикла, как будто я создаю новый объект.

Возможно, это и есть ответ: save () и пусть мои методы жизненного цикла будут достаточно умными, чтобы обнаружить, что это «повторное сохранение», а не создание новой сущности.

Если есть лучший подход, я, безусловно, был бы рад услышать об этом.

1 Ответ

1 голос
/ 03 марта 2012

Мой предварительный список выглядит примерно так:

@PrePersist
public void prePersist() {
    creationDate = (creationDate == null) ? new Date() : creationDate;
    lastChange = (lastChange == null) ? creationDate : new Date();
}

Если вы хотите проверить, сохранилась ли сущность, я бы, возможно, проверил id на нулевые значения, поскольку она автоматически генерируетсяпервое сохранение.

...