public void updateLastReadPostsWhenPostDeleted(Post post) { List<LastReadPost> lastReadPosts = lastReadPostDao.getLastReadPostsInTopic(post.getTopic()); for (LastReadPost lastReadPost : lastReadPosts) { int index = lastReadPost.getPostIndex(); if (index >= post.getPostIndexInTopic()) { lastReadPost.setPostIndex(index - 1); lastReadPostDao.saveOrUpdate(lastReadPost); } } }Перевожу на русский:
- Найти все записи, которые ссылаются на Тему чтоб узнать является ли удаляемый Пост последним прочитанным.
- Если является, значит декрементим last read post index
- Если не является (то бишь пользователь прочел следующее за ним сообщение), значит зря выбирали этот объект.
То бишь при удалении поста мы делаем то, чего могли бы не делать вовсе. Shogun, masyan, jk1, что скажете?