Если у меня есть тестовый метод, помеченный как @Transactional, и я сохраняю сущность в БД в любой момент времени, я должен иметь возможность получить новый материал (с изменениями) в следующей строке кода, даже хотя транзакция будет затем откатываться (поведение по умолчанию для транзакционных модульных тестов), верно?
Другими словами, если у меня есть следующее:
thisPhoto.likes.add(thisUser);
thisPhoto.save(); //the hibernate session will save this instance
...
thisUser = User.get(thisUser.id) // I even take the user instance again
newPhoto = thisUser.likedPhotos.get(0); //this should already contain the new photo, right?
assertEqual(newPhoto, thisPhoto);
Представьте, что фотография и пользователь являются объектами на основе Hibernate, где все отношения установлены правильно и все.
Тем не менее, когда я добираюсь до последней строки кода, я получаю исключение, что коллекция понравившихся фотографий имеет размер 0, и нет элемента с индексом 0.
Почему? Как еще я должен проверить, что сущность сохранилась правильно?