При сохранении увеличить позицию на 1, Spring Boot, MongoDb - PullRequest
0 голосов
/ 28 февраля 2020

Я хочу увеличить позицию на 1, когда она будет сохранена. Я хочу сделать это, чтобы отсортировать карту, изменить положение каждой карты.

Это похоже на генерацию последовательности, начинающейся с 1, только после ее сохранения.

@Document
public class Card {
    @Id private ObjectId id;
    private String name;
    private Long positionSequence = 1L; //increment the position 1 when saved
    //getter, setter
}

MongoDb не имеет @PrePersist Как и JPA, я думал о расширении AbstractMongoEventListener и использовании BeforeConvertEvent для увеличения каждой позиции. Это хорошая идея?

@Override
    public void onBeforeConvert(BeforeConvertEvent<Card> event) {
        Card card = event.getSource();
        if (card.getId() == null) {
            card.setPositionSequence(positionSequence++);
        }
    }
...