Во-первых, давайте напомним различные состояния сущности. Из спецификации JPA 1.0 (в разделе 3.2 Жизненный цикл экземпляра сущности):
В этом разделе описывается
EntityManager операции по управлению
жизненный цикл экземпляра объекта.
экземпляр объекта может быть охарактеризован
как новый, управляемый, отдельный или
удален.
- A новый экземпляр сущности имеет нет постоянной идентичности и еще не
связан с постоянным контекстом.
- A управляемый экземпляр сущности является экземпляром с постоянным идентификатором
это в настоящее время связано с контекстом постоянства.
- A отсоединенный экземпляр сущности является экземпляром с постоянной идентификацией
это не (или больше не) связано с контекстом постоянства.
- удаленный экземпляр объекта - это экземпляр с постоянным идентификатором, связанным с постоянным контекстом, который планируется удалить из базы данных.
И графическая иллюстрация:
Итак, по определению, отдельная сущность уже сохранилась, и я на самом деле не думаю, что это ваш настоящий вопрос. Теперь, если вы хотите узнать, является ли объект новым (т.е. не имеет постоянной идентичности), что по этому поводу:
@Transient
public boolean isNew() {
return (this.id == null);
}