Spring: Как организовать чтоб объект из БД был в единственном экземпляре?
Всем привет! В java/spring новичек.
В общем, есть сущьность, храниться в mongodb. Сущьность выбирается только по ID. Хочу чтоб был некий менеджер, который бы управлял ей следующим образом:
- при попытке получить сущьность по id он смотрел, была ли эта сущьность загруженна ранее. Если да - отдавал бы тот же инстанс что и по предыдущему запросу, если нет - выбирал бы из БД.
- у менеджера была возможность сохранять ее в БД.
- (желательно) менеджер выгружал бы ее из памяти, если, напрмер, на нее не было запросов в течении 20 минут.
- (желательно) менеджер сам мог понять что сущьность изменилась и нужно скинуть изменения в БД
Я правильно понимаю, что JPA как раз предлагает что-то подобное, или для этого есть какие-либо другие механизмы?
Да, в общем все правильно понимаете. За исключением последнего - записи, когда сущность изменилась. Здесь таки требуется сказать "менеджеру" явно, чтобы он скинул сущность в базу данных, если она изменилась. Это сделано во имя безопасности данных, когда мы изменили сущность, и "менеджер" должен знать, что данные можно уже скинуть, и они непротиворечивые.