Потренируйтесь в модульном тестировании своего кода и разбивайте методы так, чтобы вы могли тестировать по одному заданию за раз. Это отличный способ сделать всю проблему менее субъективной, имея реальное внешнее ограничение, состоящее в возможности модульного тестирования каждой задачи.
Как упомянул Шерканер, сохранение не приводит непосредственно к INSERT или UPDATE. Вы должны очистить сеанс или, что лучше, по моему мнению, закрыть единицу работы / зафиксировать транзакцию. У вас есть транзакции?
Не думайте, что это ошибка в реализации Hibernate. Это желаемое поведение, вы хотели бы иметь минимальную связь с базой данных, чтобы Hibernate (или любая хорошая структура ORM) консолидировала все ваши изменения и сбросит ваши изменения за один раз.
Программа не должна сразу синхронизироваться с базой данных, пробовали ли вы где-нибудь this.em.flush ();
?
используйте @Transactional
по вашему методу......
@Transactional
public void save(Object ent){
.....
.....
}