Я уверен, что во время выполнения вы могли бы использовать какой-то jedi-рефлекс-трюк , чтобы узнать, является ли ваша сущность спящей сущностью (подход, который я бы не рекомендовал), однако при нормальных условиях обстоятельства, вам не нужно беспокоиться, если это не спящий объект, метод Session.saveOrUpdate()
выдает HibernateException
, объясняя причину, по которой он не смог сохранить и / или обновить его.
Вы ничего не можете сделать, чтобы предотвратить вызов публичного метода с произвольным типом объекта. То, что вы можете сделать, это документировать ваш API относительно того, какой тип сущностей он ожидает, и результирующее поведение, если ему передается что-то другое.